通过上述这一系列流的讲解可以发现,使用字节流和字符流从代码形式上区别不大。但是如果从实际开发来讲,字节流一定是优先考虑的,只有在处理中文时才会考虑字符流。因为所有的字符都需要通过内存缓冲来进行处理。
所有字符流的操作,无论是写入还是输出,数据都先保存在缓存中。
范例:示范字节流输出与字符流输出区别
如果字符流不关闭,数据就有可能保存在缓存中并没有输出到目标源。这种情况下就必须强制刷新才能够得到完整
数据。
范例:字符流刷新操作
package www.bit.java.io;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
public class TestWriter {
public static void main(String[] args) throws Exception {
File file = new File(File.separator + "Users" + File.separator + "yuisama" +
File.separator + "Desktop"
+ File.separator + "hello.txt");
if (!file.getParentFile().exists()) { // 必须保证父目录存在
file.getParentFile().mkdirs() ; // 创建多级父目录
}
String msg = "I'm a bad man’\n" ;
Writer out = new FileWriter(file,true) ;
out.write(msg) ;
out.flush(); // 写上此语句表示强制清空缓冲内容,所有内容都输出。
}
}
在以后进行IO处理的时候,如果处理的是图片、音乐、文字都可以使用字节流,而只有处理中文的时候才会使用字符流