2011-04-23 47 views
3

我有一個使用BufferedReader寫入文件的java程序,但是在文件末尾它總是會因爲沒有完成而結束。類似如下:將文件寫入java問題

41,21,true,30,2010-08-07,Answer 
2239,1163,true,10,2010-10-06,Answer 
641,364,true,10,2010-09-02,Answer 
715,149,true,5,2010-08-11,Comment 
219,177,true,25,2010-07-23,Answer 
4809,4591,true,10,2011-02-11,Answer 
4086,4853,true,10,2011-02-17,Answer 
3720,2611,true,10,2010-12-08,Answer 
5101,60,true,5,2011-03-07,Comment 
1393,689,true,20,2010-08-24,Answer 
1274,450,true,5,2010-08-09,Comment 
446,4853,true,5,2011-03-07,Comment 
2191,70,true,5,2011-02-05,Comment 
1487,1281,true,10,2010-08-05,Answer 
3479,3899,true,10,2010-12-25,Answer 
1393,685,true,10,2010-07-26,Answer 
364,649,true,5,2010-07-19,Comment 
1274,1236,true,10,2010-08-19,Answer 
99,18 

這怎麼會發生?我的大多數程序都在循環內執行它。以下是其中的一部分:

try { 
       output.write("nodedef>name VARCHAR,label VARCHAR,age INT,reputation INT,location VARCHAR(100),upvote INT,downvote INT,creationDate VARCHAR\n"); 
       Iterator<Integer> itr = set.iterator(); 

       while(itr.hasNext()){ 
        Users temp = users.get(Integer.parseInt(itr.next().toString())); 
        if (temp != null) 
         output.write(temp.id + ", " + temp.displayName + "," + temp.age + "," + temp.reputation + "," + temp.location + "," + temp.upVotes + "," + temp.downVotes + "," + temp.date + "\n"); 
       } 

       output.write("edgedef>node1 VARCHAR,node2 VARCHAR,directed BOOLEAN, weight DOUBLE, creationDate VARCHAR, postType VARCHAR\n"); 
       Enumeration<Edges> h = edges.elements(); 
       while (h.hasMoreElements()){ 
        Edges edge = h.nextElement(); 
        output.write(edge.sourceUserId + "," + edge.targetUserId + ",true," + edge.weight + "," + edge.creationDate + "," + edge.type + "\n"); 
       } 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
+1

它有沒有得到'IOException'?它看起來像只是將異常處理程序存根。 – icktoofay 2011-04-23 22:56:52

回答

6

確保在完成寫入操作後在OutputStream上調用flush()

+0

刷新並關閉? – adit 2011-04-23 23:09:36

+0

關閉調用刷新,所以你不需要刷新,如果你打電話關閉。 – MeBigFatGuy 2011-04-23 23:19:14