После исчерпания интернета, который ищет подходящий способ записи потока данных в работающем JAR-файле, я понятия не имею, как взять поток данных (например, строка) и вывод в файл *.txt
рядом с *.jar
. Вот мое письмо попытка:Запись в внешний файл (локальная файловая система) из JAR
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 в файл.
Пожалуйста, помогите !!!
В чем же проблема с кодом, который вы опубликовали в первом фрагменте? – xTrollxDudex
Я не совсем уверен. я придумал это, взяв кусочки этого - http://stackoverflow.com/questions/10308221/how-to-copy-file-inside-jar-to-outside-the-jar – ddaaggeett
Ну, это не работает? Вызывает ли это исключение? Я задаю * что * проблема, а не * почему * :) – xTrollxDudex