1、当读写文本文件时,使用字符流。因为字符流中有缓冲区,利用缓冲区进行读写更加高效。关于文本文件不光是.txt文件,像.doc、.pdf等需要用到文本的都是属于文本文件吧。这些文件与像媒体文件不同,想mp3,图片等,这些都直接二进制数字组成的。如果使用字符流读写会出现问题,只能用字节流读写(你自己可以尝试一下)。
2、你这个示例中是读写的.txt文本文件,所以可以使用字符流的缓冲区进行读写。这样更加高效。当读写的是文本文件时就可以使用字符流(我个人理解,最简单的就是当你需要使用流对象操作字符串时,就一般使用字符流),除此之外就用字节流。(可能有些废话,但实际情况就是这样{:soso_e113:})。字节流什么文件都可以读写,但是操作文本文件时就没有字符流操作高效,这也是字符流出现的原因。
其实字节流转字符流也要利用字符流的缓冲区高效的特点。
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.io.OutputStream;
- public class Test10 {
-
- public static void main(String[] args) throws IOException {
- /*File f = new File("d:" + File.separator+"test.txt");
- //用的字节输出流
- OutputStream out=new FileOutputStream(f);
- String str="Hello World";
- byte[] b=str.getBytes();
- for(int i=0;i<b.length;i++){
- out.write(b);
- }
- out.close();*/
- test();
- }
-
- public static void test() throws IOException{
- File f = new File("d:" + File.separator+"test.txt");
- BufferedWriter bufw = new BufferedWriter(new FileWriter(f));
- String str="Hello World";
- bufw.write(str); //使用字符流缓冲区更加高效。
- bufw.close();
- }
- }
复制代码
|