2013-05-23 4 views
3

Я изучаю java и в настоящее время пытаюсь разработать простое приложение. Мой вопрос: можете ли вы хранить данные о настройках и т. Д. В текстовом файле, внутреннем для .jar? Если да, то как вы могли бы получить доступ к этому в java? Извините, если это действительно глупая идея.Можете ли вы хранить данные внутри .jar?

+3

Да, но вы не можете написать ему (легко) – MadProgrammer

+4

Не глупая идея! – Travis

+1

Посмотрите [здесь] (http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html) для метода getResourceAsStream (String). Вы можете получить «InputStream» из любого ресурса в банке. –

ответ

3
InputStream is = this.getClass().getResourceAsStream("/data/file.txt"); 

ресурсы, котор вы получаете должны быть на пути к классам

+0

Но вы не можете изменить Это... –

0

Вы можете хранить данные внутри .jar?

Данные только для чтения могут храниться в JAR-файле. Вы можете прочитать такие данные, используя getResourceAsStream(...), если JAR находится в пути к классам или с помощью стандартного класса API JAR-файла, если он не находится в tle classpath.

Но хранения обновлений, в состоянии данных в файле JAR является проблематичным:

  • Во многих случаях это невозможно; например потому что JAR-файл доступен только для чтения или загружен «на лету».

  • Во всех остальных случаях это было бы очень неудобно, поскольку стандартный класс API JAR-файлов не поддерживает обновление. (Вы должны создать новый ZIP-файл, скопировать через старый контент, кроме файла обновляемых, добавьте этот файл, а затем переименуйте полученный файл.)

1

Да, можно, и это не глупый вопрос, который нам всем нужно начинать.

Есть две части вашего вопроса:

  1. Добавление данных/текстового файла в .jar - (с использованием муравей в баночке :) добавить «набор файлов реж = ...» в цель jar, где dir устанавливается равным каталогу, в котором есть файл данных/текста. Обратитесь к How can I include data text files in a jar using Ant?

  2. доступ к этим данным/текстовый файл из кода Java - вам нужно использовать ClassLoader и getResourceAsStream. Обратитесь к Loading files in JAR in Tomcat using getResourceAsStream

Кроме того, пожалуйста, обратите внимание на https://github.com/gitjonathan/turbo-sansa, у меня есть рабочая версия на нем.

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