`

写文件操作

    博客分类:
  • J2SE
阅读更多

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;


public class WriteFile {

 /**
  * @param args
  */
 public static void main(String[] args) {
  PrintWriter writer = null;
  try {
   writer = new PrintWriter(new BufferedWriter(new FileWriter("D:/111.txt"))); 
  } catch (IOException e) {
   e.printStackTrace();
  }
  writer.write("在学习的过程中就没有把流当回事," +
    "没想到进公司里的这些日子做的工作全部都是IO流," +
    "每天和他们打交道,快晕死了。 " +
    "最近接了一个活," +
    "叫我为格式转换工具添加新的功能," +
    "其实说白了主要还是IO流的操作。" +
    "可是在我工作之中用的是PrintWriter流向文件中写数据的时候却出现了问题。" +
    "在我指的目录下虽然建文件了,但是文件中就是没有内容。这是什么原因呢," +
    "我努力的寻找答案,最后我和一个可以向文件中写入数据的PrintWriter比较了一下," +
    "发现除了我的PrintWriter流没有关闭外其它没有什么差别啊。" +
    "但是我想就是我没有关闭文件的话也只是对性能上有点影响不应该写不进去数据啊。" +
    "管它三七二十一先试着把我的流关闭看看结果在说。一试结果却成功了,文件中有了数据。" +
    "问题找到了就是因为我的流没有关半而造成的。那么流不关闭为什么会造成不向文件中写数据据呢。" +
    "于是乎我试着调用了PrintWriter流的flush()方法,在把流关闭去掉试试。结果发现文件中也有数据。" +
    "所以经一系列的试验证明在用PrintWriter的时候如果不关闭流的话是不会被flush()的。" +
    "从另一方面上说就是PrintWriter会先把流中的内容放入缓存当中," +
    "如果你要是不刷新的话是不会把流的内容写入文件当中的。" +
    "经过了一翻折腾却发现了这个从理论上也不应该存在的问题却导倒致了我的文件无内容。");
  writer.flush();
  writer.close();
  System.out.println("写入文件成功!!!");
    
 }

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics