Как получить полную картину о потоках в Java? - PullRequest
1 голос
/ 09 февраля 2012

Всякий раз, когда мне приходится работать с такими темами, как обработка файлов или программирование сокетов, я должен искать в Интернете пример кода, чтобы увидеть, как используются классы xxStreamxx, xxReader, xxWriter.Я хочу иметь возможность использовать их самостоятельно и знать, как они работают.

Как мне узнать об этом?

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012

Основная идея проста.

Потоки предназначены для двоичного чтения / записи. Устройства чтения / записи предназначены для чтения / записи символов (в Java байт не является символом, поскольку символ является юникодом). Если возможно преобразовать двоичный поток в символьную последовательность, для потока имеется соответствующий считыватель.

Например, FileInputStream extends InputStream это двоичный файл для чтения. Если это текстовый файл для чтения, вы оборачиваете этот объект в InputStreamReader extends Reader, предоставляя набор символов. Теперь вы можете читать символы.

Если вы хотите сделать readLine(), вам нужно обернуть этот ридер в BufferedReader.

Аналогично с писателями.

Итак, идея заключается в том, чтобы получить новые способности.

1 голос
/ 09 февраля 2012

Прежде всего, вы должны узнать и понять, что такое потоки. Если вы не понимаете концепции, стоящие за ними, вы всегда будете копировать код. Итак, прочитайте «Базовый урок ввода-вывода из java-учебника»: http://docs.oracle.com/javase/tutorial/essential/io/streams.html. Подробное описание этой темы на javapassion.com: http://www.javapassion.com/javase/javaiostream.pdf.

Во время чтения, как я обычно говорил ученикам: «пиши код и совершай ошибки»: -)

1 голос
/ 09 февраля 2012

На этом сайте вы можете найти множество примеров того, как писать свои собственные потоки на Java: http://java.sun.com/developer/technicalArticles/Streams/WritingIOSC/

Просто просмотр примеров иногда помогает вам гораздо больше, чем объяснения ...

Пожалуйста, прокрутите до середины и нижней части страницы.

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