File file = new File(tempDir + "/page_" + i + ".xlsx"); OutputStream outputStream = null; try { outputStream = new FileOutputStream(file); workbook.write(outputStream); } finally { FileKit.closeOutStream(outputStream); } 怎样才能在不覆盖之前创建的文件的情况下,向同名文件写入数据
时间: 2024-02-10 17:10:45 浏览: 113
QTxlsx+qt5.9.4+vs2015+vs2017版本库
如果你想在不覆盖之前创建的文件的情况下,向同名文件写入数据,可以使用 Java 中的文件追加模式。在文件追加模式下,写入的数据会添加到文件末尾而不是覆盖文件原有的内容。你可以将 `FileOutputStream` 的第二个参数设置为 `true` 来打开文件追加模式。具体代码如下:
```
File file = new File(tempDir + "/page_" + i + ".xlsx");
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file, true); // 打开文件追加模式
workbook.write(outputStream);
} finally {
FileKit.closeOutStream(outputStream);
}
```
注意,如果你使用文件追加模式,写入的数据会添加到文件末尾,所以你需要考虑如何分别处理之前写入的数据和新写入的数据。如果你想覆盖文件原有的内容,可以先将文件清空,再写入新的数据。你可以使用 `FileOutputStream` 的构造函数来打开文件清空模式,具体代码如下:
```
File file = new File(tempDir + "/page_" + i + ".xlsx");
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(file); // 打开文件清空模式
workbook.write(outputStream); // 写入新的数据
} finally {
FileKit.closeOutStream(outputStream);
}
```
这样,旧的数据会被新的数据覆盖。
阅读全文