Введение в I/O (Input/Output)
I/O (Input/Output) в Java — это операции ввода и вывода, которые позволяют программам взаимодействовать с внешними источниками данных, такими как файлы, консоль, сети и другие. Java предоставляет мощный и гибкий API для работы с I/O через пакеты java.io и java.nio.
Ключевые концепции I/O
Потоки (Streams)
Потоки в Java представляют собой абстракцию для чтения и записи данных.
Существует два основных типа потоков: байтовые (работают с байтами) и символьные (работают с символами).
Байтовые потоки (Byte Streams)
Используются для работы с бинарными данными.
Основные классы: InputStream и OutputStream.
Символьные потоки (Character Streams)
Используются для работы с текстовыми данными.
Основные классы: Reader и Writer.
Байтовые потоки
Байтовые потоки предназначены для работы с байтами. Они полезны для чтения и записи бинарных данных, таких как изображения и аудиофайлы.
Основные байтовые потоки:
InputStream: абстрактный класс для чтения байтов.
FileInputStream: читает данные из файла.
ByteArrayInputStream: читает данные из массива байтов.
BufferedInputStream: читает данные с буферизацией, что повышает производительность.
OutputStream: абстрактный класс для записи байтов.
FileOutputStream: записывает данные в файл.
ByteArrayOutputStream: записывает данные в массив байтов.
BufferedOutputStream: записывает данные с буферизацией, что повышает производительность.
Пример работы с байтовыми потоками:
Символьные потоки
Символьные потоки предназначены для работы с текстовыми данными. Они полезны для чтения и записи текстовых файлов.
Основные символьные потоки:
Reader: абстрактный класс для чтения символов.
FileReader: читает данные из текстового файла.
CharArrayReader: читает данные из массива символов.
BufferedReader: читает данные с буферизацией, что повышает производительность.
Writer: абстрактный класс для записи символов.
FileWriter: записывает данные в текстовый файл.
CharArrayWriter: записывает данные в массив символов.
BufferedWriter: записывает данные с буферизацией, что повышает производительность.
Пример работы с символьными потоками:
#Java #Training #IO
I/O (Input/Output) в Java — это операции ввода и вывода, которые позволяют программам взаимодействовать с внешними источниками данных, такими как файлы, консоль, сети и другие. Java предоставляет мощный и гибкий API для работы с I/O через пакеты java.io и java.nio.
Ключевые концепции I/O
Потоки (Streams)
Потоки в Java представляют собой абстракцию для чтения и записи данных.
Существует два основных типа потоков: байтовые (работают с байтами) и символьные (работают с символами).
Байтовые потоки (Byte Streams)
Используются для работы с бинарными данными.
Основные классы: InputStream и OutputStream.
Символьные потоки (Character Streams)
Используются для работы с текстовыми данными.
Основные классы: Reader и Writer.
Байтовые потоки
Байтовые потоки предназначены для работы с байтами. Они полезны для чтения и записи бинарных данных, таких как изображения и аудиофайлы.
Основные байтовые потоки:
InputStream: абстрактный класс для чтения байтов.
FileInputStream: читает данные из файла.
ByteArrayInputStream: читает данные из массива байтов.
BufferedInputStream: читает данные с буферизацией, что повышает производительность.
OutputStream: абстрактный класс для записи байтов.
FileOutputStream: записывает данные в файл.
ByteArrayOutputStream: записывает данные в массив байтов.
BufferedOutputStream: записывает данные с буферизацией, что повышает производительность.
Пример работы с байтовыми потоками:
// Чтение из файла
try (FileInputStream fis = new FileInputStream("input.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
// Запись в файл
try (FileOutputStream fos = new FileOutputStream("output.txt")) {
String text = "Hello, World!";
fos.write(text.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
Символьные потоки
Символьные потоки предназначены для работы с текстовыми данными. Они полезны для чтения и записи текстовых файлов.
Основные символьные потоки:
Reader: абстрактный класс для чтения символов.
FileReader: читает данные из текстового файла.
CharArrayReader: читает данные из массива символов.
BufferedReader: читает данные с буферизацией, что повышает производительность.
Writer: абстрактный класс для записи символов.
FileWriter: записывает данные в текстовый файл.
CharArrayWriter: записывает данные в массив символов.
BufferedWriter: записывает данные с буферизацией, что повышает производительность.
Пример работы с символьными потоками:
// Чтение из файла
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
// Запись в файл
try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
String text = "Hello, World!";
bw.write(text);
} catch (IOException e) {
e.printStackTrace();
}
#Java #Training #IO