您的位置:首页 > 编程语言 > Java开发

java5.30学习笔记

2016-05-30 19:52 399 查看

bufferedWriter的原理:

https://docs.oracle.com/javase/7/docs/api/java/io/BufferedWriter.html

这个writer并不会立即将字符写入目标流里,而是先暂时写在一个“缓冲区”,直到如下情况,缓冲区里的内容才会输出到输出流里:

1 缓冲区满了

2 调用了BufferedWriter的flush方法

3 调用了BufferedWriter的close方法,该方法会先flush缓冲区到输出流。

你的代码正如一楼所说,再还没有将BufferedWriter的缓冲区输出到流里,就退出了整个Java,自然输出文件里不会有任何内容。

日志系统

import java.io.*;
public class TestLog {
public static void main(String[] args) {
String s = null;
//接受控制台输入,转换为字符流然后转化为处理流可以读一行。
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));

try {
//确定写入文件并且在最后不覆盖输出。
FileWriter fw = new FileWriter(
"c:/Users/Administrator/Desktop/自学心得.txt",true);
//包装为print流,可以不抛异常自动flush。
PrintWriter log = new PrintWriter(fw);
log.println("----" + new Date() + "----");
while ((s = br.readLine()) != null) {

if(s.equalsIgnoreCase("exit")){
break;
}
//s.println(s + "。");
//写入操作。
log.println(s + "。");
}
log.flush();
log.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: