从 JAR 写入外部文件(本地文件系统)

Write to external file (local file system) from JAR

在用尽互联网寻找在 运行 JAR 文件中写入数据流的正确方法后,我不知道如何获取数据流(比如字符串)并输出到*.jar 旁边的 *.txt 文件。这是我的写作尝试:

InputStream stream = new ByteArrayInputStream("some string".getBytes("UTF-8"));
OutputStream resStreamOut = new FileOutputStream(new File("/dir-next-to-jar/some.txt"));
int readBytes;
byte[] buffer = "some string".getBytes();
while ((readBytes = stream.read(buffer)) > 0) {
    resStreamOut.write(buffer, 0, readBytes);
}

This 是我已经成功将 JAR 旁边的本地文件加载到 JAR 中的方式:

InputStream stream = ThisClassName.class.getClass().getResourceAsStream("/dir-next-to-jar/some.txt");

那么,如何将新数据写入我加载到 JAR 流中的同一个文件?

似乎最明显的解决方案是反转我将 *.text 文件加载到 JAR 中的操作,但事实证明这是不可能的。

注意:我在这里使用String作为感兴趣的数据类型,但实际上,我感兴趣的是写JSONObjectBufferedImage从 JAR 输出到文件。

请帮忙!!!

如果您将数据作为字符串,使用 Apache 的 FileUtils 怎么样:

https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html#writeStringToFile(java.io.File,%20java.lang.String,%20java.nio.charset.Charset) 一行就可以将txt写入文件