从 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
作为感兴趣的数据类型,但实际上,我感兴趣的是写JSONObject
和BufferedImage
从 JAR 输出到文件。
请帮忙!!!
如果您将数据作为字符串,使用 Apache 的 FileUtils 怎么样:
在用尽互联网寻找在 运行 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
作为感兴趣的数据类型,但实际上,我感兴趣的是写JSONObject
和BufferedImage
从 JAR 输出到文件。
请帮忙!!!
如果您将数据作为字符串,使用 Apache 的 FileUtils 怎么样: