2012-01-01 1 views
0

У меня есть некоторые файлы .txt в папке под названием «прогресс», как это:Моя программа читает .txt-файлы в Eclipse, но не когда я экспортирую как .jar?

enter image description here

Программа считывает файлы прекрасно, когда я запускаю его в качестве приложения на Java в Eclipse, но когда я экспортировать его как банку и запустить ее, она не работает. Я использую BufferedReader для чтения файлов .txt, и я отношусь к текстовым файлам как «progress/easy1.txt» и т. Д. Я могу что-то сделать, чтобы исправить это?

EDIT:

У меня есть метод писателя, как это:

public void writeToFile(String filename){ 

    BufferedWriter bufferedWriter = null; 

    try { 

      //Construct the BufferedWriter object 
      bufferedWriter = new BufferedWriter(new FileWriter(filename)); 

      //Start writing to the output stream 
      bufferedWriter.write("a"); 

     } catch (FileNotFoundException ex) { 
      ex.printStackTrace(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } finally { 
      //Close the BufferedWriter 
      try { 
       if (bufferedWriter != null) { 
        bufferedWriter.flush(); 
        bufferedWriter.close(); 
       } 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 

} 

Так как я бы инкорпорировать .getResourceAsStream() с этим?

ответ

2

Да, вы должны поместить их в каталог в своем источнике и получить доступ, используя путь к классам. См. Например Class.getResourceAsStream(). Это заставит его работать везде.

+0

Я отредактировал главный пост с помощью метода writeToFile(). Как я могу использовать getResourceAsStream() для работы с методом записи? –

+0

Итак, вы оба читаете * и * записываете эти файлы? Тогда объект classpath не будет работать. Я думал, ты только читал их. Если вам нужно читать и писать, вам нужно выбрать имя файла, доступ к которому вы можете получить, работая за пределами Eclipse. –

+0

Да, извините, должно было быть более ясно. Итак, что вы подразумеваете под именем файла, я могу получить доступ к завершению работы Eclipse. Как пользователи \ Asingh \ Desktop \ easy1.txt или что-то в этом роде? –

0

Мой класс прочитать файл из корневой папки моего проекта с помощью:

FileInputStream fis = new FileInputStream(filename); 
    Scanner scanner = new Scanner(fis); 

где имя_файла это имя моего файла (включая путь к файлу).

Если сгенерировать работоспособную баночку с помощью затмения выбирающего своего класса (с основным методом), в моем случае testing.ReverseWords как «Настройка запуска» в процессе выполнение и банки, как:

Java -cp runnable.jar testing.ReverseWords progress/B-large-practice.in

и найти файл. Надеюсь, это поможет вам.