HTML5技术

【Java IO流】字节流和字符流详解 - 云开的立夏(5)

字号+ 作者:H5之家 来源:H5之家 2017-09-15 15:06 我要评论( )

1 String file1="C:\\Users\\acer\\workspace\\encode\\new4\\test1" ; 2 String file2="C:\\Users\\acer\\workspace\\encode\\new4\\test2" ; 3 InputStreamReader isr= new InputStreamReader( new FileInputStre

1 String file1="C:\\Users\\acer\\workspace\\encode\\new4\\test1"; 2 String file2="C:\\Users\\acer\\workspace\\encode\\new4\\test2"; 3 InputStreamReader isr=new InputStreamReader(new FileInputStream(file1)); 4 OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(file2)); 5 // int c; 6 // while((c=isr.read())!=-1){ 7 // System.out.print((char)c); [] buffer=new char[8*1024]; 10 int c; 11 //批量读取,放入buffer这个字符数组,从第0个位置到数组长度 ((c=isr.read(buffer,0,buffer.length))!=-1){ System.out.println(s); 16 osw.write(buffer,0,c); 17 osw.flush(); 18 //osw.write(s); } 21 isr.close(); 22 osw.close();

注意:

七、字符流的文件读写流FileWriter和FileReader

跟字节流的FileInputStream和FileOutputStream类相类似,字符流也有相应的文件读写流FileWriter和FileReader类,这两个类主要是对文本文件进行读写操作。

FileReader/FileWriter:可以直接写文件名的路径。

与InputStreamReader相比坏处无法指定读取和写出的编码,容易出现乱码

FileWriter fw = new FileWriter(C:\\Users\\acer\\workspace\\encode\\new4\\test2");//输出流

[8*1024]; 2 int c; 3 while((c=fr.read(buffer, 0, buffer.length))!=-1){ 4 fw.write(buffer, 0, c); 5 fw.flush(); 6 } 7 fr.close(); 8 fw.close();

注意:FileReader和FileWriter不能增加编码参数,所以当项目和读取文件编码不同时,就会产生乱码。 这种情况下,只能回归InputStreamReader和OutputStreamWriter。

八、字符流的过滤器BufferedReader&BufferedWriter

字符流的过滤器有BufferedReader和BufferedWriter/PrintWriter

除了基本的读写功能外,它们还有一些特殊的功能。

定义方式:

BufferedReader br =new BufferedReader(new InputStreamReader(new FileInputStream(目录的地址)))

BufferedWriter br =new BufferedWriter(new InputStreamWriter(new FileOutputStream(目录的地址)))

PrintWriter pw=new PrintWriter(目录/Writer/OutputStream/File);

使用方法:

String file1="C:\\Users\\acer\\workspace\\encode\\new4\\test1"; 3 String file2="C:\\Users\\acer\\workspace\\encode\\new4\\test2"; 4 BufferedReader br = new BufferedReader(new InputStreamReader( 5 new FileInputStream(file1))); 6 BufferedWriter bw=new BufferedWriter(new OutputStreamWriter( 7 new FileOutputStream(file2))); 8 String line; 9 while((line=br.readLine())!=null){ bw.write(line); bw.newLine(); 14 bw.flush(); 15 } 16 br.close(); 17 bw.close(); 18 }

在这里我们可以使用PrintWriter来代替BufferedWriter做写操作,PrintWriter相比BufferedWriter有很多优势:

使用方法:

1 String file1="C:\\Users\\acer\\workspace\\encode\\new4\\test1"; 2 String file2="C:\\Users\\acer\\workspace\\encode\\new4\\test2"; 3 BufferedReader br = new BufferedReader(new InputStreamReader( 4 new FileInputStream(file1))); 5 PrintWriter pw=new PrintWriter(file2); String line; 8 while((line=br.readLine())!=null){ pw.println(line);pw.flush(); } 13 br.close(); 14 pw.close(); 15 }

注意:

-----------------更多java流的操作和内容请自行查阅API------------------------

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • this的用法 – JavaScript深入浅出(二) - OkayChen

    this的用法 – JavaScript深入浅出(二) - OkayChen

    2017-09-15 12:00

  • JavaScript: 使用 atan2 来绘制 箭头 和 曲线 - 救火队长

    JavaScript: 使用 atan2 来绘制 箭头 和 曲线 - 救火队长

    2017-09-14 08:04

  • 大龄程序员肉翻记录【一】 - JavaNerd

    大龄程序员肉翻记录【一】 - JavaNerd

    2017-09-13 09:01

  • Java基础精选,你答对了几道? - 小柒2012

    Java基础精选,你答对了几道? - 小柒2012

    2017-09-09 17:11

网友点评
/