Поскольку комментарий слишком короткий:
public class PrintLines {
public static void main(String[] args) {
java.io.File file = new java.io.File("myFile.txt");
try {
final java.io.PrintWriter output = new java.io.PrintWriter(file);
try {
int count = 1;
while (count <= 300) {
output.println(count + " I love Java!");
count++;
}
} finally {
output.close();
}
if (output.checkError()) {
System.err.println("Failed to write file correctly.");
System.exit(1);
return;
}
} catch (java.io.FileNotFoundException exc) {
System.err.println("Failed to write file correctly.");
System.exit(1);
return;
}
}
}
Это не хороший код.Мы продолжаем работать, даже если есть проблема с выводом, и мы неявно выбираем любую кодировку символов, которая будет установлена по умолчанию в то время.
// imports elided
public class PrintLines {
public static void main(String[] args) {
File file = new File("myFile.txt");
try (OutputStream rawOut = new FileOutputStream{file);
BuffereWriter out = new BufferedWriter(new OutputStreamWriter(
rawOut, java.nio.charset.StandardCharsets.UTF_8
));
int count = 1;
while (count <= 300) {
out.write(count + " I love Java!");
out.newLine();
count++;
}
out.flush();
} catch (java.io.IOException exc) {
System.err.println("Failed to write file correctly.");
System.exit(1);
return;
}
}
}o
У меня естьиспользовал Java SE 7 новый оператор try.Обратите внимание, что исключение, генерируемое выделением и выпуском ресурса, перехвачено в блоке catch
и является поведением противоположным , чем в Java SE 6 try-catch-finally
.