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 OutputstreamtoWr坡纠课柩iter(){ 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(){ tr鲻戟缒男y{ 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(); }}