现在给出两种数据流,那么字节流与字符流最大的区别就是字节流直接与终端进行数据交互,而字符流需要将数据经过缓冲区处理后才可以输出。
在使用OutputStream输出数据的时候即使最后没有关闭输出流,那么内容也可以正常输出,如果使用我们的字符输出流,如果不关闭,那么就表示在缓冲区之中处理的内容不会被强制性的清空,所以就不会输出数据。如果现在有特殊情况不能够关闭字符输出流,可以使用flush()方法强制清空缓冲区。
范例:字符流强制清空缓冲区
public static void main(String[] args) throws Exception{
//1.定义要输出的文件目录
File file=new File("e:"+File.separator+"demo"+File.separator+"my.txt");
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();//如果文件不存在,创建文件
}
//2.实例化Writer子类对象
Writer out=new FileWriter(file);
//3.进行内容输出
String str="Hello sl";
out.write(str);
out.flush();//强制清空缓冲区
}
发现的确有内容了。
说明字符流的确在缓冲区有处理。
在开发之中,对于字节数据处理比较多:
例如:图片,音乐,电影,文字
对于字符流,可以进行中文的有效处理。
建议:如果要处理中文的时候优先考虑字符流,如果没有中文问题建议使用字节流。
总结
1.字节流的输出以及输入操作的代码必须掌握熟练
OutputStream与InputStream中的write和read方法
2.中文处理使用字符流。
网友评论