2014-12-05 3 views
0

В настоящее время я разрабатываю приложение Java для проведения опроса. Я хочу читать/записывать в .txt-файл, создавая .csv для хранения введенных данных. Ниже приведен код, который я использовал до сих пор для записи данных. Конечно, это делает JAR-файл не переносимым, поскольку он имеет абсолютный путь.Чтение/запись в .txt файл из JAR

File file = new File("C:/Files/JavaApp/src/text.text/"); 
FileWriter fw = null; 
BufferedWriter bw = null; 
try { 
    fw = new FileWriter(file, true); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 
bw = new BufferedWriter(fw); 
try { 
    bw.write("blah" + ","); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 
try { 
    bw.newLine(); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 
try { 
    bw.close(); 
} catch (IOException e) { 
    System.out.println(e.getMessage()); 
} 

Я попробовал несколько способов, таких как ClassName.class.getResource("Text.text");, но он всегда будет возвращать Reflection или ошибку NullPointer.

Я знаю, что запись в файл в JAR создает некоторые проблемы, то есть я должен указать на внешний файл для чтения/записи. Однако я не знаю, как это сделать в коде. Мне нужно, чтобы JAR-файл был полностью переносимым. Даже если это означает, что он должен храниться в каталоге, поэтому JAR может искать файл .txt в этом каталоге. Или, есть ли другой способ?

Если кто-нибудь может мне помочь, я был бы очень благодарен.

+0

не знаю, можете ли вы использовать его для этого, но попробуйте пакет java.util.jar (http://docs.oracle.com/javase/7/docs/api/java/util/jar/package -summary.html) – herrlock

+2

, а также прочитать этот ответ http://stackoverflow.com/a/5052359/3680684 – herrlock

+0

Непонятно, что задают. Единственный вопрос в этом посте: «Или, есть другой способ?». Чего ты хочешь достичь? – VGR

ответ

1

Для чтения из файла Jar: How to read a file from jar in Java?

Файл архивный файл. Это zip-файл с расширением .jar. Вы не должны писать на него. Если файл jar был подписан (проект безопасности), вы не можете его записать. Изменение одного бита в файле приведет к его недействительности.

Что нужно сделать, это сохранить файл по умолчанию в Jar и загрузить его в папку «user.home», если он еще не существует.

Смежные вопросы