转换流:是字符和字节之间的桥梁。
InputStreamReader:字节流InputStream---字符流Reader
OutputStreamWriter:字节流OutputStream---字符流Writer
应用中readLine()方法是字符流BufferedReader类中的方法,而字节流的缓冲区不能使用该方法,只能通过把字节流转换成字符流的缓冲区来使用这个便捷的方法。newLine也是如此。
使用指定编码表只有传换流能指定(默认是GBK)。
OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("xx.txt"),"UTF-8");
下面是文件复制代码:
import java.io.*;
public class InOutputStreamWriterReaderDeom {
public static void main(String[] args) {
try{
FileInputStream is=new FileInputStream("D:\\1.txt");
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
BufferedWriter bw=new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("D:\\2.txt")));
String buf=null;
while((buf=br.readLine())!=null)
{
bw.write(buf);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}catch(Exception e){
e.printStackTrace();
}
}
}