2015-04-14 49 views
0

我對com.jmatio.io包有疑問,我希望有人能回答。我正在尋找寫入.mat文件(使用java),可能已經存在或可能不存在。 如果存在,我想追加到最後的信息,但如果沒有創建文件,我想創建一個新文件,只是將內容添加到該文件。 我的第二個寫是覆蓋第一個,但我不希望它這樣做。 任何建議或解決方案,很高興欣賞。在java中附加墊文件

回答

0

如果要將多個陣列寫入新文件,則可以使用MatFileIncrementalWriter來實現。由於它在它的解釋的Javadoc

更新的作家,允許逐步添加變量作家的生活。這是必要的,以允許寫入大量變量,而不必保持超過必要的時間。

而且它明確指出你不能附加到現有的文件。

如果要附加到現有的文件時可能會使用MatFileIncrementalWriter

  • 需要從現有的文件
  • 寫現有的變量回文件

    • 讀變量添加新變量到增量書寫器
  • +0

    感謝你的回覆,是的,我使用了MatFileIncrementalWriter,它對我有用,現在我不再需要追加到一個新文件,謝謝你雖然幫助:) – TomMcG

    0

    您需要在附加模式中寫入,以便將內容追加到文件的末尾而不是覆蓋。

    File out = new File("out.mat"); 
    try(FileWriter fw = new FileWriter(out, true); // true is for append 
        BufferedWriter bw = new BufferedWriter(fw)) { 
        // ... 
    } 
    

    如果該文件不存在,它將被創建。

    +0

    感謝您的快速回復。這是我使用的幾行代碼。 「double [] db = new double [] {1.0,2.0,3.0,4.0,5.0,6.0}; MLDouble mlDouble = new MLDouble(」double_arr「,db,3); \t \t ArrayList list = new ArrayList (); \t \t list.add(mlDouble); \t \t \t \t MatFileIncrementalWriter MW =新MatFileIncrementalWriter(completePath); \t \t MW.write(列表); \t \t \t 雙\t [] NEWDB =新double [] {7.0,8.0,9.0, 10.0,11.0,12.0}; \t \t MLDouble mlDouble1 = new MLDouble(「double_arr」,db,3); \t \t list.add(0,mlDouble); \t \t MW.write(list); 「我怎樣才能申請你的答案呢? – TomMcG

    +0

    你應該在你的問題中寫下這個 – yunandtidus