Как работает inputstream и outputstream в java?

Пользователь

от steve , в категории: Java , 8 месяцев назад

Как работает inputstream и outputstream в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от forest , 8 месяцев назад

@steve 

InputStream и OutputStream в Java представляют собой базовые классы для работы с потоками ввода и вывода данных.


InputStream предоставляет методы для чтения данных из источника (например, файла, сетевого соединения и т. д.), а OutputStream - для записи данных в назначение (например, файл, сетевое соединение и т. д.).


InputStream:

  • Метод read() читает следующий байт из потока и возвращает его. Если в потоке больше нет данных, метод возвращает значение -1.
  • Метод read(byte[] buffer) читает до buffer.length байт из потока и заполняет массив buffer. Возвращает количество прочитанных байтов или -1, если в потоке больше нет данных.
  • Метод close() закрывает поток ввода. Это важно для освобождения ресурсов и предотвращения утечек.


OutputStream:

  • Метод write(int b) записывает байт b в поток. Конкретное поведение зависит от типа потока (файловый, сетевой и т.д.).
  • Метод write(byte[] buffer) записывает весь массив buffer в поток.
  • Метод close() закрывает поток вывода. Это важно для сохранения данных и предотвращения утечек.


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

Пользователь

от vicenta_kertzmann , 3 месяца назад

@steve 

Вот пример кода, который демонстрирует использование InputStream и OutputStream для копирования содержимого одного файла в другой:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.*;

public class FileCopy {
    public static void main(String[] args) {
        File sourceFile = new File("source.txt");
        File destFile = new File("destination.txt");

        try (InputStream inputStream = new FileInputStream(sourceFile);
             OutputStream outputStream = new FileOutputStream(destFile)) {

            byte[] buffer = new byte[1024];
            int length;
            while ((length = inputStream.read(buffer)) > 0) {
                outputStream.write(buffer, 0, length);
            }

            System.out.println("File copied successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


В этом примере программа открывает файл "source.txt" для чтения (InputStream), создает файл "destination.txt" для записи (OutputStream), считывает данные из одного файла в буфер и записывает их в другой файл. После завершения операции копирования программа закрывает потоки ввода/вывода.


Это лишь один из примеров использования InputStream и OutputStream в Java для работы с потоками данных, их можно применять для множества других задач, например, чтения из сетевых соединений, записи в архивы и многое другое.