您的位置:首页 > 编程语言 > Java开发

JAVA 打印流与转换流

2015-03-18 01:58 134 查看
转换流主要有两个InputStreamReader和OutputStreamWriter

1.InputStreamReader主要是将字节流输入流转换成字符输入流

2.OutputStreamWriter主要是将字节流输出流转换成字符输出流

打印流主要包含两个:PrintStream和PrintWriter,分别对应字节流和字符流

完成屏幕打印的重定向

System.out对应的就是PrintStream,默认在输出在控制台,我们可以重定向他的输出,可以定向到文件

也就是执行System.out.println("arry");不输出到屏幕,而输出到文件

/*
System.in可以接收屏幕的输入

*/

importjava.io.*;

publicclassPrintStreamTest02{

publicstaticvoidmain(String[]args){

BufferedReaderbr=null;

try{

InputStreamReaderisr=newInputStreamReader(System.in);

br=newBufferedReader(isr);

Stringtemp=null;
while((temp=br.readLine())!=null){
System.out.println(temp);
//如果输出w退出循环
if("w".equals(temp)){
break;
}
}
}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(br!=null){
br.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}

}


/*
完成屏幕打印的重定向

System.out对应的就是PrintStream,默认在输出在控制台,我们可以重定向他的输出,
可以定向到文件就是执行System.out.println("hehhe");不输出到屏幕,而输出到文件

*/

importjava.io.*;

publicclassPrintStreamTest01{

publicstaticvoidmain(String[]args){

FileOutputStreamfos=null;

try{

fos=newFileOutputStream("C:\\work\\Java\\arry.txt");

PrintStreamps=newPrintStream(fos);

System.setOut(ps);

System.out.println("hehehe");

}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(fos!=null){
fos.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}

}




对象流可以将Java对象转换成二进制写入磁盘,这个过程通常叫做序列化,并且还可

以从磁盘读出完整的Java对象,而这个过程叫做反序列化。

对象流主要包括:ObjectInputStream和ObjectOutputStream

如何实现序列化和反序列化

/*
OutputStreamWriter主要是将字节流输出流转换成字符输出流
*/

importjava.io.*;

publicclassOutputStreamWriterTest01{

publicstaticvoidmain(String[]args){

BufferedWriterbw=null;

try{

//字节输出流
//FileOutputStreamfos=newFileOutputStream("C:\\work\\Java\\arry.txt");
//字符输出流
//OutputStreamWriterosw=newOutputStreamWriter(fos);

bw=newBufferedWriter(newOutputStreamWriter(newFileOutputStream("C:\\work\\Java\\arry.txt")));

bw.write("keke老师新婚快乐!");
bw.newLine();

bw.write("祝福师傅和师娘新婚快乐,百年好合,白头偕老,早生贵子!!!!!");

bw.flush();

}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}finally{
try{
if(bw!=null){
bw.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
}
}

}


/*
对象流:

对象流可以将java对象转换成二进制写入磁盘,这个过程叫做“序列化”
还可以从磁盘读取完整的Java对象,这个过程叫“反序列化”

包括:ObjectInputStream和ObjectOutputStream

java.io.Serializable

*/

importjava.io.*;

publicclassObjectStreamTest02{

publicstaticvoidmain(String[]ags){

ObjectInputStreamois=null;

try{

FileInputStreamfis=newFileInputStream("C:\\work\\Java\\arry.txt");

ois=newObjectInputStream(fis);

//反序列化
Studentstu=(Student)ois.readObject();

System.out.println(stu.name);

}catch(FileNotFoundExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}finally{
try{
if(ois!=null){
ois.close();
}
}catch(IOExceptione){
e.printStackTrace();
}
}

}

}

//实现序列化接口
classStudentimplementsSerializable{
Stringname;
}


如果实现序列化该类必须实现序列化接口java.io.Serializable,该接口没有任何方法,该接口

只是一种标记接口,标记这个类是可以序列化的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: