Java为我们提供了Reader和Writer两个专门操作字符流的类。子类有BufferedReader、InputStreamReader(字节流到字符流转换的桥梁),字符输出流与此对应BufferedWriter、InputStreamWriter。为了通用性,java中字符是16位的unicode字符,所以8位的字节流必须和16位的字符流进行转换。
读取:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(File file), "UTF-8"));
写入:BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(File file), "UTF-8"));
FileReader reader=new java.io.FileReader(new File("D:\\Workspaces\\WeiboTest\\saved\\err.txt"));
BufferedReader bufReader=new java.io.BufferedReader(reader);
String line=bufReader.readLine() ; //从输入数据流读取下一行输入并返回此行
while(line!=null){
System.out.println(line);
line=bufReader.readLine();
}
//缓冲System.in输入流
//System.in是位流,可以通过InputStreamReader将其转换为字符流
BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));
//缓冲FileWriter
BufferedWriter bufWriter = new BufferedWriter(new FileWriter(args[0]));
String input = null;
//每读一行进行一次写入动作
while(!(input = bufReader.readLine()).equals("quit"))
{
bufWriter.write(input);
//newLine()方法写入与操作系统相依的换行字符,依执行环境当时的OS来决定该输出那种换行字符
bufWriter.newLine();
}
bufReader.close();
bufWriter.close();