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------------------------