第一篇:java 字符串数据流的发送以及在 struts action中的接收
字符串数据流的发送以及在 struts action中的接收
今天遇到了一个问题,就是在struts action中怎么接收别人传过来的xml数据流。因为数据流是别人提供的,为了测试我自己写了一个发送数据流的方法,模拟客户端,放在main函数中运行就可以了。
URL url = new URL(“http://192.168.0.204:8080/Test/index.do”);.openConnection();HttpURLConnection httpURLConnection =(HttpURLConnection)url httpURLConnection.setDoOutput(true);httpURLConnection.setDoInput(true);httpURLConnection.setRequestMethod(“POST”);httpURLConnection.setConnectTimeout(5000);httpURLConnection.setReadTimeout(5000);httpURLConnection.setRequestProperty(“content-type”,“text/html”);//不加上此属性,服务器将接收不到
httpURLConnection.connect();
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(httpURLConnection.getOutputStream(), “UTF-8”));out.write(“haha”);out.flush();DataInputStream in = new DataInputStream(httpURLConnection.getInputStream());//即使没有返回数据,这个也不能缺少。
in.close();
在服务器端的数据为
BufferedReader br = new BufferedReader(new
InputStreamReader((ServletInputStream)request.getInputStream()));
String line = null;StringBuilder sb = new StringBuilder();while((line = br.readLine())!=null){sb.append(line);}String xml = sb.toString();
System.out.println(xml);
这是在struts action中的代码。
经过测试的可以运行。
第二篇:串口接收字符串
串口接收字符串.txt
//串口接收以特定字符为开头的字符串并且保存特定字符之后的有效位
#include
uchar ser_receive;//串口接收到的数据 uchar ser_flag=0;
uchar receive_number[11]={0};//接收串口发送来的数据的数组 uchar i=0;uchar j;uchar come=0;void init_ser(){
TMOD=0X20;//定时器1工作在方式2 TH1=0XFD;TL1=0XFD;//波特率9600 TR1=1;EA=1;SM0=0;SM1=1;REN=1;//允许串口接收
ES=1;//开串口 中断
}
void delay(uint z){ uint x,y;for(x=z;x>0;x--)
for(y=110;y>0;y--);
} /**************************************************************************************** * 程序目的:串口接收字符串,但是要以字符a为开头的后面的11位字符,若开头不为a则接收不写入数组
*
若开头为a 但是发送有效位超过11位 就把后面的截断 只要前11位 * *补充:该程序也可以改为接受任意字符串(但是字符串的长度 必须是大体确定的)* * ****************************************************************************************/
void ser()interrupt 4 //中断函数不用声明 { if(RI==1){
RI=0;
ser_receive=SBUF;
if(come==1)
{
if(ser_receive!=''&&ser_receive!='a')
{
receive_number[i]=ser_receive;
i++;
if(i==11)
{
i=0;
ser_flag=1;
come=0;
}
}
}
else if(ser_receive=='a')
{
come=1;
}
}
}
void main(){ init_ser();while(1){
if(ser_flag==1)
{
ES=0;
ser_flag=0;
for(j=0;j<11;j++)
{
SBUF=receive_number[j];
while(!TI);
TI=0;
delay(10);
}
ES=1;
} }
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////下面程序接收字符串(不用特定字符开头)//////////////////////////////////////////////////////////////////// ///////下面程序接收字符串(不用特定字符开头)////////////////////////////////////////////////////////////////////// //////下面程序接收字符串(不用特定字符开头)/////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include
uchar ser_receive;//串口接收到的数据 uchar ser_flag=0;
uchar receive_number[12]={0};uchar i=0;uchar j;void init_ser(){
TMOD=0X20;//定时器1工作在方式2 TH1=0XFD;TL1=0XFD;//波特率9600 TR1=1;EA=1;SM0=0;SM1=1;REN=1;//允许串口接收 ES=1;//开串口 中断
}
void delay(uint z){ uint x,y;for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void ser()interrupt 4 //中断函数不用声明 { if(RI==1){
RI=0;
ser_receive=SBUF;
if(ser_receive!='')
{
receive_number[i]=ser_receive;
i++;
if(i==12)
{
i=0;
ser_flag=1;
}
}
}
}
void main(){ init_ser();while(1){
if(ser_flag==1)
{
ES=0;
ser_flag=0;
for(j=0;j<12;j++)
{
SBUF=receive_number[j];
while(!TI);
TI=0;
delay(10);
}
ES=1;
} }
}
演讲稿
尊敬的老师们,同学们下午好:
我是来自10级经济学(2)班的学习委,我叫张盼盼,很荣幸有这次机会和大家一起交流担任学习委员这一职务的经验。
转眼间大学生活已经过了一年多,在这一年多的时间里,我一直担任着学习委员这一职务。回望这一年多,自己走过的路,留下的或深或浅的足迹,不仅充满了欢愉,也充满了淡淡的苦涩。一年多的工作,让我学到了很多很多,下面将自己的工作经验和大家一起分享。
学习委员是班上的一个重要职位,在我当初当上它的时候,我就在想一定不要辜负老师及同学们我的信任和支持,一定要把工作做好。要认真负责,态度踏实,要有一定的组织,领导,执行能力,并且做事情要公平,公正,公开,积极落实学校学院的具体工作。作为一名合格的学习委员,要收集学生对老师的意见和老师的教学动态。在很多情况下,老师无法和那么多学生直接打交道,很多老师也无暇顾及那么多的学生,特别是大家刚进入大学,很多人一时还不适应老师的教学模式。学习委员是老师与学生之间沟通的一个桥梁,学习委员要及时地向老师提出同学们的建议和疑问,熟悉老师对学生的基本要求。再次,学习委员在学习上要做好模范带头作用,要有优异的成绩,当同学们向我提出问题时,基本上给同学一个正确的回复。
总之,在一学年的工作之中,我懂得如何落实各项工作,如何和班委有效地分工合作,如何和同学沟通交流并且提高大家的学习积极性。当然,我的工作还存在着很多不足之处。比日:有的时候得不到同学们的响应,同学们不积极主动支持我的工作;在收集同学们对自己工作意见方面做得不够,有些事情做错了,没有周围同学的提醒,自己也没有发觉等等。最严重的一次是,我没有把英语四六级报名的时间,地点通知到位,导致我们班有4名同学错过报名的时间。这次事使我懂得了做事要脚踏实地,不能马虎。
在这次的交流会中,我希望大家可以从中吸取一些好的经验,带动本班级的学习风气,同时也相信大家在大学毕业后找到好的工作。谢谢大家!
第三篇:Java连接oracle数据流
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class OracleJDBC {
//驱动所在的包
public static final String DBDRIVER = “oracle.jdbc.driver.OracleDriver”;
//数据库路径URL public static final String DBURL = “jdbc:oracle:thin:@localhost:1521/orcl”;public static void main(String[] args)throws Exception {Connection con = null;Statement stmt = null;ResultSet result = null;//1.加载驱动 Class.forName(DBDRIVER);//2.连接数据库 con = DriverManager.getConnection(DBURL,“scott”,“tiger”);//3.创建statement对象 stmt = con.createStatement();
//4.执行sql语句
String insert = “insert into myemp(empno,ename,job,mgr)values(2014,'shersfy','teacher',7782)”;
String select = “select * from myemp”;
//String delete = “delete from myemp where empno=2013;”;
//stmt.executeUpdate(insert);
System.out.println(“数据添加成功”);
result = stmt.executeQuery(select);
//5.遍历结果集
while(result.next()){
System.out.print(“empno-->”+result.getString(“empno”)+“");
System.out.print(”姓名-->“+result.getString(”ename“)+”“);
System.out.println(”工作-->“+result.getString(”job"));
}
//关闭数据库
result.close();
stmt.close();
con.close();
}
}
第四篇:Java输入数据流详解
Java输入数据流
在Java中,我们把能够读取一个字节序列的对象称作一个Java输入数据流;而我们把够写一个字节序列称作一个输出流。它们分别由抽象类 InputStream和OutputStream类表示。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息。所以Java 引入了用来处理Unicode字符的类层次,这些类派生自抽象类Reader和Writer,它们用于读写双字节的Unicode字符,而不是单字节字符。
Java.io包简介
JDK标准帮助文档是这样解释Java.io包的,通过数据流、序列和文件系统为系统提供输入输出。InputStream类和OutputStream类
InputStream类是所有输入数据流的父类,它是一个抽象类,定义了所有Java输入数据流都具有的共通特性。
java.io.InputStream的方法如下:
public abstract read()throws IOException
读取一个字节并返回该字节,如果到输入源的末则返回-1.一个具体的Java输入数据流需要重载此方法,以提供 有用的功能。例如:在FileInputStream类中,该方法从一个文件读取一个字节。public int read(byte[] b)throws IOException
把数据读入到一个字节数据中,并返回实际读取的字节数目。如果遇到流末 则返回-1,该方法最多读取b.length个字节。
public abstract int read(byte[] b,int off,int len)throws IOException
把数据读入到一个字节数组中并返回实际读取的字节数目。如果遇到流的末尾则的返回-1.其中参数off表示第一个字节在b中的位置,len表示读取的最大字节数。
public long skip(long n)throws IOException
略过N个字节不读取,会返回实际略过的字节数目。因为数据流中剩下的数据可能不到N 个字节那么多,所以此时返回值会小于N.public int available()throws IOException
read方法(包括后面要讲的OutputStream类的Write方法)都能够阴塞一个线程,直到字节被 实际读取或写入。这意味着如果一个流不能立即被读或被写
/*
* Created on 2005-3-10
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package mytestfiles;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
/**
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class Files
{
public static void main(String[] args)throws IOException
{
Files f = new Files();
// System.out.println(f.readFile(“f:LinkFile.java”));
// f.readAllFile(“f:”,“LinkFile.java”);
// f.readLineFile(“f:”,“LinkFile.java”);
// System.out.println(f.fileIsNull(“f:”,“122.txt”));
// f.readFolderByFile(“F:PDF”);
// System.out.println(f.createAndDeleteFolder(“ss”,“f:”));
// System.out.println(f.createAndDeleteFile(“f:ss”,“TestFile.dat”));
String[] ss = new String[50];
for(int i=0;i{
ss[i] = “信息技术和互联网(计算机软硬件,通讯)”+i;
}
f.writeFile(“f:ss”,“TestFile.txt”,ss);
}
/**
* 文件的写入
* @param filePath(文件路径)
* @param fileName(文件名)
* @param args[]
* @throws IOException
*/
public void writeFile(String filePath,String fileName,String[] args)throws IOException{
FileWriter fw = new FileWriter(filePath+fileName);
PrintWriter out=new PrintWriter(fw);
for(int i=0;i{
out.write(args[i]);
out.println();
out.flush();
}
fw.close();
out.close();
}
/**
* 文件的写入
* @param filePath(文件路径)
* @param fileName(文件名)
* @param args
* @throws IOException
*/
public void writeFile(String filePath,String fileName,String args)throws IOException{
FileWriter fw = new FileWriter(filePath+fileName);
fw.write(args);
fw.close();
}
/**
* 创建与删除文件
* @param filePath
* @param fileName
* @return 创建成功返回true
* @throws IOException
*/
public boolean createAndDeleteFile(String filePath,String fileName)throws IOException{
boolean result = false;
File file = new File(filePath,fileName);
if(file.exists())
{
file.delete();
result = true;
System.out.println(“文件已经删除!”);
}
else
{
file.createNewFile();
result = true;
System.out.println(“文件已经创建!”);
}
return result;
}
/**
* 创建和删除目录
* @param folderName
* @param filePath
* @return 删除成功返回true
*/
public boolean createAndDeleteFolder(String folderName,String filePath)
{
boolean result = false;
try
{
File file = new File(filePath+folderName);
if(file.exists())
{
file.delete();
System.out.println(“目录已经存在,已删除!”);
result = true;
}
else
{
file.mkdir();
System.out.println(“目录不存在,已经建立!”);
result = true;
}
}
catch(Exception ex)
{
result = false;
System.out.println(“CreateAndDeleteFolder is error:”+ex);
}
return result;
}
/**
* 输出目录中的所有文件及目录名字
* @param filePath
*/
public void readFolderByFile(String filePath)
{
File file = new File(filePath);
File[] tempFile = file.listFiles();
for(int i = 0;i{
if(tempFile[i].isFile())
{
System.out.println(“File : ”+tempFile[i].getName());
}
if(tempFile[i].isDirectory())
{
System.out.println(“Directory : ”+tempFile[i].getName());
}
}
}
/**
* 检查文件中是否为一个空
* @param filePath
* @param fileName
* @return 为空返回true
* @throws IOException
*/
public boolean fileIsNull(String filePath,String fileName)throws IOException{
boolean result = false;
FileReader fr = new FileReader(filePath+fileName);
if(fr.read()==-1)
{
result = true;
System.out.println(fileName+“ 文件中没有数据!”);
}
else
{
System.out.println(fileName+“ 文件中有数据!”);
}
fr.close();
return result;
}
/**
* 读取文件中的所有内容
* @param filePath
* @param fileName
* @throws IOException
*/
public void readAllFile(String filePath,String fileName)throws IOException{
FileReader fr = new FileReader(filePath+fileName);
int count = fr.read();
while(count!=-1)
{
System.out.print((char)count);
count = fr.read();
if(count == 13)
{
fr.skip(1);
}
}
fr.close();
}
/**
* 一行一行的读取文件中的数据
* @param filePath
* @param fileName
* @throws IOException
*/
public void readLineFile(String filePath,String fileName)throws IOException{
FileReader fr = new FileReader(filePath+fileName);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
while(line!= null)
{
System.out.println(line);
line = br.readLine();
}
br.close();
fr.close();
}
}
到这里Java输入数据流就介绍完了。
第五篇:java发送电子邮件
邮件的基本信息类 packagecom.pojos;
importjava.util.Properties;/**
* 发送邮件需要使用的基本信息 * author by wangfun
http://www.feisuxs 小说520 * @author dell * */
publicclassMailSenderInfo { // 发送邮件的服务器的IP和端口
private String mailServerHost;private String mailServerPort = “25”;// 邮件发送者的地址
private String fromAddress;// 邮件接收者的地址
private String toAddress;// 登陆邮件发送服务器的用户名和密码
private String userName;private String password;// 是否需要身份验证
privatebooleanvalidate = false;// 邮件主题
private String subject;// 邮件的文本内容
private String content;// 邮件附件的文件名
private String[] attachFileNames;
/** */
/**
* 获得邮件会话属性
*/
public Properties getProperties(){
Properties p = newProperties();
p.put(“mail.smtp.host”, this.mailServerHost);
p.put(“mail.smtp.port”, this.mailServerPort);
p.put(“mail.smtp.auth”, validate ? “true” :“false”);
return p;}
public String getMailServerHost(){
returnmailServerHost;}
publicvoidsetMailServerHost(String mailServerHost){
this.mailServerHost = mailServerHost;}
public String getMailServerPort(){
returnmailServerPort;} publicvoidsetMailServerPort(String mailServerPort){ this.mailServerPort = mailServerPort;} publicbooleanisValidate(){ returnvalidate;} publicvoidsetValidate(boolean validate){ this.validate = validate;} public String[] getAttachFileNames(){ returnattachFileNames;} publicvoidsetAttachFileNames(String[] fileNames){ this.attachFileNames = fileNames;} public String getFromAddress(){ returnfromAddress;} publicvoidsetFromAddress(String fromAddress){ this.fromAddress = fromAddress;} public String getPassword(){ returnpassword;} publicvoidsetPassword(String password){ this.password = password;} public String getToAddress(){ returntoAddress;} publicvoidsetToAddress(String toAddress){ this.toAddress = toAddress;} public String getUserName(){ returnuserName;} publicvoidsetUserName(String userName){ this.userName = userName;} public String getSubject(){ returnsubject;} publicvoidsetSubject(String subject){
} this.subject = subject;} public String getContent(){ returncontent;} publicvoidsetContent(String textContent){ this.content = textContent;} 发送器
packagecom.pojos;
importjava.util.Date;
importjava.util.Properties;
importjavax.mail.Address;
importjavax.mail.BodyPart;
importjavax.mail.Message;
importjavax.mail.MessagingException;
importjavax.mail.Multipart;
importjavax.mail.Session;
importjavax.mail.Transport;
importjavax.mail.internet.InternetAddress;
importjavax.mail.internet.MimeBodyPart;
importjavax.mail.internet.MimeMessage;
importjavax.mail.internet.MimeMultipart;
/** *//**
* 简单邮件(不带附件的邮件)发送器 http://www.feisuxs BT下载 */
public class SimpleMailSender {
/** *//**
* 以文本格式发送邮件
* @parammailInfo待发送的邮件的信息
*/
publicbooleansendTextMail(MailSenderInfomailInfo){
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
if(mailInfo.isValidate()){
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者 mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
mailMessage.setRecipient(Message.RecipientType.TO,to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// 设置邮件消息的主要内容
String mailContent = mailInfo.getContent();
mailMessage.setText(mailContent);
// 发送邮件
Transport.send(mailMessage);
return true;
} catch(MessagingException ex){
ex.printStackTrace();
}
return false;
}
/** *//**
* 以HTML格式发送邮件
* @parammailInfo待发送的邮件信息
*/
public static booleansendHtmlMail(MailSenderInfomailInfo){
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
//如果需要身份认证,则创建一个密码验证器 if(mailInfo.isValidate()){
//创建一个密码验证器
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
try {
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者 mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
Address to = new InternetAddress(mailInfo.getToAddress());
// Message.RecipientType.TO属性表示接收者的类型为TO
mailMessage.setRecipient(Message.RecipientType.TO,to);
// 设置邮件消息的主题
mailMessage.setSubject(mailInfo.getSubject());
// 设置邮件消息发送的时间
mailMessage.setSentDate(new Date());
// MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
Multipart mainPart = new MimeMultipart();
// 创建一个包含HTML内容的MimeBodyPart BodyPart html = new MimeBodyPart();
// 设置HTML内容
html.setContent(mailInfo.getContent(), “text/html;charset=utf-8”);
mainPart.addBodyPart(html);
// 将MiniMultipart对象设置为邮件内容 mailMessage.setContent(mainPart);
// 发送邮件
Transport.send(mailMessage);return true;
} catch(MessagingException ex){
ex.printStackTrace();
}
return false;
}
}