0

所以我有这样一个读者作家:

File f2 = new File("thisfileexists.txt");
BufferedReaeder reader = new BufferedReader(new InputStreamReader(System.in), 10000 * 1024);
PrintWriter fos = new Printwriter(new FileOutputStream(f2));

以及稍后在程序中的阅读循环

List<Integer> compressed = new ArrayList<Integer>();
String l;
while((l = reader.readLine()) != null){
    compressed.add(Integer.parseInt(l)); //assume only valid integer values
}

以后我去的时候

String result = "";
for(int k : compressed){
    String entry;
    //affect entry here

    fos.write(entry);
    result += entry;
}

循环完成执行后,fos 正在写入的文件为空。任何帮助,将不胜感激。

4

3 回答 3

2

你关闭你的FileOutputStream

String result = "";
for(int k : compressed){
  String entry;
  //affect entry here

  fos.write(entry);
  result += entry;
}

fos.close();       // close the file descriptor
于 2012-04-30T07:19:02.407 回答
1

完成后关闭文件吗?没有

fos.close();

文件的结尾可能会丢失。如果文件足够小,你得到的只是一个空文件。

于 2012-04-30T07:19:21.683 回答
0

写入所有数据后是否关闭了流?:)

于 2012-04-30T07:20:51.173 回答