Встречается на собеседованиях • сегодня

В чем разница между FileInputStream и ByteArrayInputStream

FileInputStream и ByteArrayInputStream — оба наследники InputStream, но работают с разными источниками данных:

  1. Источник данных

    • FileInputStream читает данные из файла в файловой системе.
    • ByteArrayInputStream читает данные из массива байтов (byte[]) в памяти.
  2. Производительность

    • FileInputStream зависит от скорости чтения с диска (медленнее).
    • ByteArrayInputStream работает с данными в памяти (быстрее).
  1. Пример использования
java
// FileInputStream
try (InputStream fis = new FileInputStream("file.txt")) {
    int data;
    while ((data = fis.read()) != -1) {
        System.out.print((char) data);
    }
}

// ByteArrayInputStream
byte[] bytes = {72, 101, 108, 108, 111};
try (InputStream bais = new ByteArrayInputStream(bytes)) {
    int data;
    while ((data = bais.read()) != -1) {
        System.out.print((char) data);
    }
}

Когда использовать:

  • FileInputStream — для работы с файлами.
  • ByteArrayInputStream — для обработки данных, уже находящихся в памяти (например, полученных из сети).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы