使用的是InputStreamReader和OutputStreamWriter,它们本身属于的是reader和writer字符流,我们之所以会用到这些转化流是因为系统有时候只给我们提供了字节流,为了方便操作,要用到字符流。比如说System.in标准输入流就是字节流。你想从那里得到用户在键盘上的输入,只能是以转换流将它转换为Reader以方便自己的程序读取输入。再比如说Socket里的getInputStream()很明显只给你提供字节流,你要想读取字符,就得给他套个InputStreamReader()用来读取。
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 Test {
public static void main(String[] args) throws IOException {
//字节流和字符流的相互转化
FileInputStream fileInputStream = new FileInputStream("input.txt");
//inputSreamReader本来就是reader对象,创建的时候需要传入一个InputStream对象,将字节流转化为字符流
BufferedReader reader = new BufferedReader(new InputStreamReader(fileInputStream));
//将字符流转化为字节流
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("output.txt"));
BufferedWriter writer = new BufferedWriter(outputStreamWriter);
//实现拷贝文件的操作
String buf;
while((buf = reader.readLine()) != null)
{
writer.write(buf);
writer.newLine();
System.out.println(buf);
}
//关闭流
reader.close();
writer.close();
}
}
参考http://www.zaojiahua.com/1453.html
后续也许更新^_^
时间: 2024-10-13 10:04:38