Цель InputStreamи OutputStreamсостоит в том, чтобы абстрагировать различные способы ввода и вывода: независимо от того, является ли поток файлом, веб-страницей или экраном, значение не имеет. Все, что имеет значение, это то, что вы получаете информацию из потока (или отправляете информацию в этот поток).
InputStream используется для многих вещей, которые вы читаете.
OutputStream используется для многих вещей, которые вы пишете.
Вот пример кода. Предполагается, что InputStream instrи OutputStream osstrуже были созданы:
int i;while((i = instr.read())!=-1){
osstr.write(i);}
instr.close();
osstr.close();
@KorayTugay Поток обычно определяется как набор символов. Точнее, более одного бита или символа называется потоком.
Гоутхам Гопалакришнан
14
Более чем один символ также является String. Что отличает поток от строки?
Праджит Шреста
Я думаю, что поток это просто нули и единицы., А не символы.
smilyface
93
InputStream используется для чтения, OutputStream для записи. Они связаны как декораторы друг с другом, так что вы можете читать / записывать все типы данных из разных источников.
Например, вы можете записать примитивные данные в файл:
Для большинства входных потоков также есть выходной поток. Вы можете определить свои собственные потоки для чтения / записи специальных вещей, и есть сложные потоки для чтения сложных вещей (например, есть потоки для чтения / записи в формате ZIP).
Программа использует входной поток для чтения данных из источника, по одному элементу за раз:
Программа использует выходной поток для записи данных в пункт назначения, по одному элементу за раз:
Источник данных и пункт назначения данных, изображенные выше, могут быть любыми данными, которые содержат, генерируют или потребляют данные. Очевидно, что это включает в себя файлы на диске , но источником или местом назначения также может быть другая программа, периферийное устройство, сетевой сокет или массив .
вы читаете из InputStream и пишете в OutputStream.
например, скажем, вы хотите скопировать файл. Вы должны создать FileInputStream для чтения из исходного файла и FileOutputStream для записи в новый файл.
Если ваши данные являются символьным потоком, вы можете использовать FileReader вместо InputStream и FileWriter вместо OutputStream, если хотите.
InputStream input =...// many different typesOutputStream output =...// many different typesbyte[] buffer =newbyte[1024];int n =0;while((n = input.read(buffer))!=-1)
output.write(buffer,0, n);
input.close();
output.close();
OutputStream - это абстрактный класс, который представляет выходные данные записи. Существует много различных классов OutputStream, и они записывают определенные вещи (например, экран, файлы, байтовые массивы, сетевые подключения и т. Д.). Классы InputStream имеют доступ к одним и тем же вещам, но они считывают данные из них.
Вот хороший базовый пример использования FileOutputStream и FileInputStream для записи данных в файл и последующего чтения.
Поток - это непрерывный поток жидкости, воздуха или газа.
Поток Java - это поток данных из источника в пункт назначения. Источником или местом назначения может быть диск, память, сокет или другие программы. Данные могут быть байтами, символами или объектами. То же самое относится к потокам C # или C ++. Хорошая метафора для потоков Java - вода, вытекающая из крана в ванну, а затем в дренаж.
Данные представляют статическую часть потока; методы чтения и записи - динамическая часть потока.
InputStreamпредставляет поток данных из источника, OutputStreamпредставляет поток данных в пункт назначения. Наконец, InputStreamи OutputStreamесть абстракции низкоуровневого доступа к данным, такие как указатели на C-файл.
Поток : в терминах непрофессионалов поток - это данные, наиболее общий поток - это двоичное представление данных.
Входной поток : если вы читаете данные из файла или любого другого источника, используется поток ввода. Проще говоря, входной поток действует как канал для чтения данных.
Выходной поток : если вы хотите прочитать и обработать данные из источника (файла и т. Д.), Вам сначала нужно сохранить данные, а средством хранения данных является выходной поток.
Выходной поток, как правило, связан с некоторым назначением данных, таким как файл, сеть и т. Д. В выходном потоке Java это место назначения, где данные в конечном итоге записываются и заканчиваются
InputStream используется для чтения, OutputStream для записи. Они связаны как декораторы друг с другом, так что вы можете читать / записывать все типы данных из разных источников.
Например, вы можете записать примитивные данные в файл:
Чтобы прочитать письменное содержание:
Вы можете использовать другие типы потоков для улучшения чтения / записи. Например, вы можете ввести буфер для эффективности:
Вы можете написать другие данные, такие как объекты:
Вы можете читать из других источников:
Для большинства входных потоков также есть выходной поток. Вы можете определить свои собственные потоки для чтения / записи специальных вещей, и есть сложные потоки для чтения сложных вещей (например, есть потоки для чтения / записи в формате ZIP).
источник
Из учебника по Java :
Поток - это последовательность данных.
Программа использует входной поток для чтения данных из источника, по одному элементу за раз:
Программа использует выходной поток для записи данных в пункт назначения, по одному элементу за раз:
Пример кода из руководства по оракулу:
Эта программа использует потоки байтов для копирования xanadu.txt файл outagain.txt , написав один байт в то время ,
Взгляните на этот вопрос SE, чтобы узнать больше о продвинутых символьных потоках, которые являются обертками поверх байтовых потоков:
поток байтов и поток символов
источник
вы читаете из InputStream и пишете в OutputStream.
например, скажем, вы хотите скопировать файл. Вы должны создать FileInputStream для чтения из исходного файла и FileOutputStream для записи в новый файл.
Если ваши данные являются символьным потоком, вы можете использовать FileReader вместо InputStream и FileWriter вместо OutputStream, если хотите.
источник
close
всегда естьflush
, так что нет.OutputStream - это абстрактный класс, который представляет выходные данные записи. Существует много различных классов OutputStream, и они записывают определенные вещи (например, экран, файлы, байтовые массивы, сетевые подключения и т. Д.). Классы InputStream имеют доступ к одним и тем же вещам, но они считывают данные из них.
Вот хороший базовый пример использования FileOutputStream и FileInputStream для записи данных в файл и последующего чтения.
источник
Поток Java - это поток данных из источника в пункт назначения. Источником или местом назначения может быть диск, память, сокет или другие программы. Данные могут быть байтами, символами или объектами. То же самое относится к потокам C # или C ++. Хорошая метафора для потоков Java - вода, вытекающая из крана в ванну, а затем в дренаж.
Данные представляют статическую часть потока; методы чтения и записи - динамическая часть потока.
InputStream
представляет поток данных из источника,OutputStream
представляет поток данных в пункт назначения. Наконец,InputStream
иOutputStream
есть абстракции низкоуровневого доступа к данным, такие как указатели на C-файл.источник
Поток : в терминах непрофессионалов поток - это данные, наиболее общий поток - это двоичное представление данных.
Входной поток : если вы читаете данные из файла или любого другого источника, используется поток ввода. Проще говоря, входной поток действует как канал для чтения данных.
Выходной поток : если вы хотите прочитать и обработать данные из источника (файла и т. Д.), Вам сначала нужно сохранить данные, а средством хранения данных является выходной поток.
источник
Выходной поток, как правило, связан с некоторым назначением данных, таким как файл, сеть и т. Д. В выходном потоке Java это место назначения, где данные в конечном итоге записываются и заканчиваются
источник