Книга SCJP, раздел IO: это опечатка или есть причина, по которой это будет выглядеть так? - PullRequest
1 голос
/ 14 мая 2010

Мой вопрос касается строки (правка: 19), где создается новый PrintWriter с конструктором, принимающим FileWriter fw в качестве параметра. Я не понимаю, как использовать цепочку BufferedWriter bw для FileWriter, если она не используется позже при написании. Может ли Java применить цепочку таким образом, чтобы bw все же как-то влиял на остальную часть программы?

16.         try {
17.             FileWriter fw = new FileWriter(test);
18.             BufferedWriter bw = new BufferedWriter(fw, 1024);
19.             PrintWriter out = new PrintWriter(fw);
20.             out.println("<html><body><h1>");
21.             out.println(args[0]);
22.             out.println("</h1></body></html>");
23.             out.close();
24.             bw.close();
25.             fw.close();
26.         }catch(IOException e) {
27.             e.printStackTrace();
28.         }

Я думаю, что это, вероятно, опечатка, и они намеревались использовать bw в качестве параметра для PrintWriter, но, как говорится в заголовке, я новичок в этом.

Спасибо всем заранее.

Ответы [ 3 ]

3 голосов
/ 14 мая 2010

Вы правы, это похоже на опечатку.

Строка 18 не должна влиять на результат выполнения этого кода.

BufferedWriter Javadoc показывает обычный пример того, как обычно используются FileWriter, BufferedWriter и PrintWriter.

1 голос
/ 14 мая 2010

Какая это книга? Их несколько - первое, на что стоит обратить внимание, это зайти на страницу издателя и найти раздел с ошибками. Скорее всего, это ошибка, потому что нет, Java не связывает эти конкретные объекты в цепочку (на самом деле цепочка не будет правильным словом, это скорее побочный эффект). Если вы найдете страницу с ошибками и ее нет в списке, вы всегда можете отправить ее авторам через сайт и позволить им принять решение.

0 голосов
/ 14 мая 2010

Он компилирует и выдает одинаковый результат в любом случае, но да, это похоже на опечатку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...