之前发现用BufferedOutputStream写如流,写入不完整,之后查了资料,对这个方法有了新的认识。
java flush()函数的作用
写个小例子记录一下
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("/Users/apple/Documents/x1.txt"));
//x.txt文件小于6k
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/apple/Documents/x.txt")));
String len;
while ((len = in.readLine()) != null) {
out.write(len.getBytes());
}
//不写这句话x1.txt文件什么也没有
out.flush();
后来查阅资料发现PrintStream
这个类,这个类主要是起装饰作用,方便输出各种格式
从API描述中
只要用户调用println方法之一或写入换行字符或字节(‘\n’)后,会自动调用flush方法。
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("/Users/apple/Documents/x.txt")));
PrintStream out = new PrintStream("/Users/apple/Documents/x1.txt");
String len;
while ((len = in.readLine()) != null) {
out.write(len.getBytes());
}