java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都有输入和输出操作。字节流中输出数据主要用OutputStream,输入主要用InputStream;字符流中输出主要用Writer类,输入主要用Reader类。
字节流和字符流:
- 字节流:InputStream、OutputStream;
子类:FileInputStream、 FileOutputStream、ByteArrayInputStream、ByteArrayOutputStream等。 - 字符流:Reader、Writer
子类:FileReader 、FileWriter 、CharArrayReader、CharArrayWriter等。
字节流转为字符流转换:
字节流转换成字符流可以用 InputStreamReader、OutputStreamWriter类实现。
字节流转字符流的主要用途:
因InputStream的子类中没有读取问文本行的函数(readline),如要读取问文本行 需把字节流输入流转为字符输入流,再将字符输入流转为字符缓冲输入流(BufferedReader)。
示例:字节输入流实现行读取。
FileInputStream fis = new FileInputStream("F:\\test\\test.txt"); //读取字节流
InputStreamReader isr = new InputStreamReader(fis); //字节流转成字符流
BufferedReader buffer = new BufferedReader(isr);//将字符流转成字符缓冲输入流
String str = null;
while((str=buffer.readLine())!=null){
System.out.println(str);
}
输出结果如下图所示:
test.txt文件内容如下图所示: