在java中附加mat文件

在java中附加mat文件,java,append,mat-file,Java,Append,Mat File,我有一个关于com.jmatio.io的问题,我希望有人能回答。我想写一个.mat文件(使用java),该文件可能存在,也可能不存在。 如果它存在,我想将信息附加到末尾,但如果文件未创建,我想创建一个新文件,只需将内容添加到该文件。 我的第二次写入正在覆盖第一次写入,但我不希望它这样做。 非常感谢您的任何建议或解决方案。您需要以附加模式写入,以便将内容附加到文件的末尾,而不是覆盖 File out = new File("out.mat"); try(FileWriter fw = new Fi

我有一个关于com.jmatio.io的问题,我希望有人能回答。我想写一个.mat文件(使用java),该文件可能存在,也可能不存在。 如果它存在,我想将信息附加到末尾,但如果文件未创建,我想创建一个新文件,只需将内容添加到该文件。 我的第二次写入正在覆盖第一次写入,但我不希望它这样做。 非常感谢您的任何建议或解决方案。

您需要以附加模式写入,以便将内容附加到文件的末尾,而不是覆盖

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

如果文件不存在,将创建该文件。

如果要将多个数组写入一个新的文件,可以使用
MatFileIncrementalWriter
实现该文件。正如javadoc中所解释的

更新的writer,允许在writer的生命周期内增量添加变量。这是必要的,以允许写入大变量,而不必保持超过必要的时间

它清楚地表明,您不能附加到现有文件

如果要附加到现有文件,可能需要

  • 从现有文件中读取变量
  • 使用
    MatFileIncrementalWriter
  • 向增量编写器添加新变量

感谢您的快速回复。这是我使用的几行代码。“double[]db=new-double[]{1.0,2.0,3.0,4.0,5.0,6.0};MLDouble-MLDouble=new-MLDouble(“double_arr”,db,3);ArrayList list=new-ArrayList();list.add(MLDouble);MatFileIncrementalWriter MW=new-MatFileIncrementalWriter(completePath);MW.write(list);double[]newDB=new-double[]7.0,8.0,9.0,10.0,11.0}”;MLDouble mlDouble1=新的MLDouble(“double_arr”,db,3);list.add(0,MLDouble);MW.write(list);“我如何应用你的答案?你应该在你的问题中写下这句话谢谢你的回答,是的,我使用了MatFileIncrementalWriter,它对我很有效,现在我不再需要附加到新文件,谢谢你的帮助:)