Я хочу оптимизировать функцию чтения файлов, но не уверен, что лучше всего объявить нули вне цикла try. Кроме того, цикл и добавление символов в Stringbuffer считается плохой практикой? Я хотел бы использовать здесь обработку исключений, но, возможно, лучше использовать другую структуру? любой совет приветствуется, спасибо.Нулевые объявления Filereader и передовая практика добавления
public String readFile(){
File f = null;
FileReader fr = null;
StringBuffer content = null;
try{
f = new File("c:/test.txt");
fr = new FileReader(f);
int c;
while((c = fr.read()) != -1){
if(content == null){
content = new StringBuffer();
}
content.append((char)c);
}
fr.close();
}
catch (Exception e) {
throw new RuntimeException("An error occured reading your file");
}
return content.toString();
}
}
'try (FileReader fr = new FileReader (" c: /test.txt "))' Является ли это законным в Java? Попробуйте без Catch? Попробуйте с параметрами? Кроме того, почему вы бросаете IOException, если у вас есть блок try/catch? Наконец, содержимое не доступно, когда вы его возвращаете. –
Это законно в синтаксисе Java 7. Это не сработает на Java 6 или ранее. См. Здесь: http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html –
@RyanAmos - 1) Да, это законный синтаксис Java 7. 2) Да, попытка без улова законна ... см. 1). 3) Да, см. 1). 4), потому что я НЕ ловил IOException. 5) Ой ... Я это исправлю. –