Я пытаюсь создать новый объект PrintWriter в блоке try с ресурсами, как показано ниже, но выдает ошибку outFile cannot be resolved to a type
:
public class DataSummary {
PrintWriter outFile;
public DataSummary(String filePath) {
// Create new file to print report
try (outFile = new PrintWriter(filePath)) {
} catch (FileNotFoundException e) {
System.out.println("File not found");
e.printStackTrace();
}
}
ИЗМЕНИТЬ:
Причина, по которой я не хотел объявлять объект PrintWriter в блоке try, заключается в том, что я хочу иметь возможность ссылаться на объект outFile
в других методах моего класса.
Похоже, я не могу сделать это с помощью try с ресурсами, поэтому я создал его в обычном блоке try/catch/finally.
Текстовый файл создается. Однако, когда я пытаюсь записать в файл другим способом, в текстовом файле ничего не печатается, test.txt
.
Почему это??
public class TestWrite {
PrintWriter outFile;
public TestWrite(String filePath) {
// Create new file to print report
try {
outFile = new PrintWriter(filePath);
} catch (FileNotFoundException e) {
System.out.println("File not found");
e.printStackTrace();
} finally {
outFile.close();
}
}
public void generateReport() {
outFile.print("Hello world");
outFile.close();
}
}
try (PrintWriter outFile = new PrintWriter(filePath)) {
- person Elliott Frisch   schedule 05.11.2018outFile
в качестве переменной экземпляра? - person doctopus   schedule 05.11.2018try-with-resources
. - person Elliott Frisch   schedule 05.11.2018close
это в блокеfinally
конструктора. Не делайте этого. - person Elliott Frisch   schedule 05.11.2018try-with-resources
был изобретен. То, что вы делаете, называется антишаблон. - person Elliott Frisch   schedule 05.11.2018