Потоки ввода / вывода Java; какие различия?

Если вы хотите просмотреть фактические параметры, используемые для запроса, вы можете использовать

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql=TRACE

. Затем обратите внимание, что фактическое значение параметра отображается как binding parameter......

   2018-08-07 14:14:36.079 DEBUG 44804 --- [           main] org.hibernate.SQL                        : select employee0_.id as id1_0_, employee0_.department as departme2_0_, employee0_.joining_date as joining_3_0_, employee0_.name as name4_0_ from employee employee0_ where employee0_.joining_date=?
    2018-08-07 14:14:36.079 TRACE 44804 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [TIMESTAMP] - [Tue Aug 07 00:00:00 SGT 2018]
20
задан Peter Mortensen 10 December 2009 в 18:39
поделиться

8 ответов

Это большая тема! Я бы порекомендовал вам начать с чтения Потоки ввода-вывода :

Поток ввода-вывода представляет собой ввод источник или место назначения вывода. А поток может представлять множество различных виды источников и направлений, включая файлы на диске, устройства, прочее программ и массивов памяти.

Потоки поддерживают множество различных типов данных, включая простые байты, примитивные типы данных, локализованные персонажи и предметы. Некоторые потоки просто передать данные; другие манипулируют и преобразовать данные полезными способами.

12
ответ дан 29 November 2019 в 22:27
поделиться

Потоки: по одному байту за раз. Подходит для двоичных данных.

Читатели / писатели: по одному символу за раз. Подходит для текстовых данных.

Все, что «Буферизуется»: много байтов / символов за раз. Почти всегда хорошо.

38
ответ дан 29 November 2019 в 22:27
поделиться

При изучении Java я придумал эту мысленную схему о java.io:[12126 impressionStreams

  • байтово-ориентированный поток (8 бит)
  • , подходящий для двоичных данных, таких как Java .class файл
  • подходит для "машинно-ориентированных" данных

Читатели / пишущие

  • char (utf-16) ориентированный поток (16 бит)
  • подходит для текста, такого как исходный код Java
  • , подходит для " ориентированные на человека "данные

Буферизованные

  • всегда полезны, если не доказано иное
24
ответ дан 29 November 2019 в 22:27
поделиться

Указанные вами специализации - это особые типы, используемые для предоставления стандартного интерфейса для различных источников данных. Например, FileInputStream и ObjectInputStream будут реализовывать интерфейс InputStream, но будут работать с файлами и объектами соответственно.

3
ответ дан 29 November 2019 в 22:27
поделиться

Разделите каждое имя на слова: каждая заглавная буква - это другое слово.

  • Входной поток файла предназначен для получения входных данных из файла ] с использованием потока .
  • Выходной поток файла предназначен для записи выходных данных в файл с использованием потока

. и так далее

Как пишет mmyers:

Потоки: по одному байту за раз.

Считывающие / записывающие устройства: по одному символу за раз.

Буферизованный *: много байтов / символов за раз.

8
ответ дан 29 November 2019 в 22:27
поделиться

Я также нашел этот java_tip_how_read_files_quickly

Очень полезным! Он показывает, какие потоки наиболее эффективны.

5
ответ дан 29 November 2019 в 22:27
поделиться

Байтовые потоки - это в основном и широко используемый тип потока в java 1.0 как для символьных, так и для байтовых. После java 1.0 он устарел, и символьные потоки играют важную роль. т.е., например,

BufferedReader получит символ из источника, а его конструктор выглядит как BufferedReader (Reader inputReader) ..

Здесь Reader - это абстрактный класс, и единственный из его конкретных классов - InputStreamReader, который преобразует байты в символы и принимает ввод с клавиатуры (System.in) ...

BufferedReader : Содержит внутренний буфер, который будет читать символы из потока. Внутренний счетчик отслеживает следующий символ, который будет передан в буфер с помощью функции read (). InputStreamReader принимает входные данные как байты и внутренне преобразует их в символы.

2
ответ дан 29 November 2019 в 22:27
поделиться

This is probably the most thorough overview of the various streams, Reader's and Writer's in the Java IO API:

http://tutorials.jenkov.com/java-io/overview.html

It's part of a larger Java IO tutorial covering both byte and charater based streams.

It also covers streams that are used for reading and writing raw numeric data, like int's float's etc.

It also covers streams used for parsing like the PushbackInputStream and the PushbackReader.

3
ответ дан 29 November 2019 в 22:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: