2014-01-15 2 views
1

Я хотел бы написать файл .txt, который находится внутри пакета. Я могу получить его для чтения из точного местоположения файла .txt, но не изнутри пакета. Я предполагаю, что он использует загрузчики классов, но я не могу заставить его работать. Вот что я до сих пор.Напишите в .txt файл в пакете

public void writeFile(String fileLocation) { 
    Writer output = null; 
    File file = new File(fileLocation); 
    try { 
     output = new BufferedWriter(new FileWriter(file)); 
     output.append("WRITING TEST"); 

    output.close(); 
    } catch (IOException ex) { 
    System.out.println("Couldn't write to file."); 

    } 
} 

Затем я использую это в другом классе для записи.

WriteFile writeFile = new WriteFile(); 
writeFile.writeFile("src/com/game/scores.txt"); 

Я понимаю, что при использовании загрузчиков классов удалить «SRC /», потому что больше не будет существовать, когда программа составлена ​​в .jar.

+1

Я не уверен, что вы просите. Вы пытаетесь написать ресурс? – mikea

+0

Я не уверен, что существует общий способ сделать это для файлов в иерархии пакетов Java. Что делать, если файл находится в файле JAR? – thkala

+0

Файл будет внутри файла .jar. Я хотел бы написать ему, чтобы обновить оценки в моей игре, когда пользователь проходит уровни. – user3080274

ответ

1

Вы можете использовать класс в этом пакете, чтобы указать местоположение папки. Попробуйте что-то вроде

public URL getPackageLocation() { 
    return getClass().getResource("."); 
} 

Это должно дать вам расположение папки, из которой этот метод вызывается из.

+0

У вас попробовали это для банки? – ashokramcse

+0

Вы можете получить расположение файла в файле .jar таким образом (я использовал его много раз, чтобы вызвать изображения, а что нет). Однако, я не думаю, что вы можете редактировать .txt-файл в банке. –

0

Из комментариев, вы уже знаете, что вы можите писать в файл, который находится в файле JAR. В лучшем случае вы можете сделать, это создать файл, по отношению к пути, где JAR находится как ниже:

mylocation 
      |-- my-jar.jar 
      |-- com 
       |--game 
         |--myfile.txt 
0

Я хотел бы написать ему, чтобы обновить оценки в моей игре, как пользователь проходит уровни.

Хотя возможно write to the JAR file, я не рекомендую его использовать. Просто напишите его где-нибудь по адресу:

Path userdir = Paths.get(System.getProperty("user.home"), ".myApp", "<my app version>"); 
0

Вы не можете писать в файл Jar. Запись в Jar-файл не рекомендуется. Вы можете писать за пределами файла jar.

Пожалуйста, обратитесь к this и this вопрос переполнения стека для более подробной информации.

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