Встречается на собеседованиях • сегодня
В чем разница между Java IO и Java NIO
Java IO (Input/Output) — это традиционный потоковый ввод-вывод, работающий в блокирующем режиме. Каждая операция чтения/записи блокирует поток до завершения. Пример:
java
try (FileInputStream fis = new FileInputStream("file.txt")) {
int data;
while ((data = fis.read()) != -1) {
System.out.print((char) data);
}
}Java NIO (New I/O) — неблокирующий, буферизированный и основанный на каналах ввод-вывод. Использует селекторы для мультиплексирования потоков. Пример:
java
try (FileChannel channel = FileChannel.open(Paths.get("file.txt"))) {
ByteBuffer buffer = ByteBuffer.allocate(1024);
while (channel.read(buffer) != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get());
}
buffer.clear();
}
}Ключевые различия:
- IO потоковый, NIO буферизированный
- IO блокирующий, NIO поддерживает неблокирующий режим
- IO работает с потоками, NIO — с каналами и буферами
- NIO поддерживает селекторы для работы с множеством соединений в одном потоке

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы