0
У меня есть приложение, которое должно читать файлы по строкам. Я использую следующий код, и все в порядке.Установить относительный путь для чтения файлов с помощью BufferedReader
public ArrayList <String[]> LoadServersFile(String filename){
BufferedReader br=null;
ArrayList <String> result = new ArrayList();
try {
String sCurrentLine;
InputStreamReader reader = new InputStreamReader(this.getClass().getResourceAsStream("/"+filename));
br = new BufferedReader(new FileReader(filename));
while ((sCurrentLine = br.readLine()) != null) {
result.add(sCurrentLine);
}
br.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(FilesIO.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(FilesIO.class.getName()).log(Level.SEVERE, null, ex);
}
return result;
}
Но после составления проекта и его запуска, br.readLine()
всегда нуль. Установка "/file.txt"
и положить этот файл в C:/диск исправляет ошибку, но я нужен этот файл, чтобы быть в папке с моим .jar файл
не должен 't это без '/'? – Ben
@Ben Нет, потому что мы не используем загрузчик классов. http://stackoverflow.com/questions/6608795/what-is-the-difference-between-class-getresource-and-classloader-getresource – TheEwook
@ TheEwook It бросает мне NullException, когда я пытаюсь создать читателя. И измените его на (читатель), а не на (isReader) – crzbt