java 字节流和字符流 (下):它们之间的转换
1、导入包
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Byteandchar {
private static String path="d:\\ggg.txt"; //文件地址
private static String word="hello java Stream!!"; //写入的数据
public Byteandchar(){
}
2、//字节流转化为字符流
//写入流转换
public void OutputstreamtoWriter(){
try{
FileOutputStream o=new FileOutputStream(path,true);//创建字节流 如果没有就新建
OutputStreamWriter ow=new OutputStreamWriter(o); //转换
//方法一
/*ow.write(word); //写入文件数据
ow.flush(); //刷新缓冲区
ow.close(); //关闭数据流
*/
//方法二:加快写入速度
BufferedWriter out=new BufferedWriter(ow); //加快写入速度,使用缓冲区
out.newLine(); //换行
out.write(word);
out.flush();
out.close();
}catch(IOException e){
e.printStackTrace();
}
}
3、//读出数据流转换
public void InputstreamtoReader(){
try{
FileInputStream i=new FileInputStream(path); //创建数据流
InputStreamReader ir=new InputStreamReader(i);
//方法一:
/*char c[]=new char[1024];
int count=ir.read(c); //读出数据存放在数组
ir.close();
System.out.println(new String(c,0,count));
*/
//方法二:高效方法
BufferedReader br=new BufferedReader(ir); //创建缓冲数据流
String str=null; //存放每行的数据
while((str=br.readLine())!=null){// 一次读取一行的数据readLine()
System.out.println(str);
}
br.close(); //关闭数据流
}catch(IOException e){
e.printStackTrace();
}
}
4、//测试
public static void main(String[] args) {
//new Byteandchar().OutputstreamtoWriter();
//new Byteandchar().InputstreamtoReader();
}
}