РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
863 of 1163 menu

Класс FileInputStream

Класс FileInputStream представляет собой поток ввода, который читает байты из файла. Он наследуется от класса InputStream и используется для побайтового чтения бинарных данных: изображений, аудио, видео и любых других файлов. В конструктор мы передаем либо путь к файлу в виде строки, либо объект File, либо объект FileDescriptor. После окончания работы поток необходимо закрыть методом close.

Класс FileInputStream является наследником абстрактного класса InputStream, поэтому он поддерживает все его методы чтения: read, readAllBytes, readNBytes, skip, available, transferTo и close.

Синтаксис

new FileInputStream(String name) new FileInputStream(File file) new FileInputStream(FileDescriptor fdObj)

Пример

Давайте создадим файл, запишем в него строку и прочитаем его побайтово с помощью FileInputStream:

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("test.txt"); fos.write("abcde".getBytes()); fos.close(); FileInputStream fis = new FileInputStream("test.txt"); int b; while ((b = fis.read()) != -1) { System.out.println((char) b); } fis.close(); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"a" "b" "c" "d" "e"

Пример

Давайте прочитаем весь файл сразу методом readAllBytes и выведем полученные байты в виде строки:

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("test.txt"); fos.write("12345".getBytes()); fos.close(); FileInputStream fis = new FileInputStream("test.txt"); byte[] bytes = fis.readAllBytes(); fis.close(); String res = new String(bytes); System.out.println(res); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"12345"

Пример

Давайте прочитаем только первые 3 байта файла с помощью метода readNBytes:

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) { try { FileOutputStream fos = new FileOutputStream("test.txt"); fos.write("abcde".getBytes()); fos.close(); FileInputStream fis = new FileInputStream("test.txt"); byte[] bytes = fis.readNBytes(3); fis.close(); String res = new String(bytes); System.out.println(res); } catch (IOException e) { System.out.println("Error: " + e.getMessage()); } } }

Результат выполнения кода:

"abc"

Смотрите также

  • класс InputStream,
    который является родителем FileInputStream
  • метод read,
    который читает один байт из потока
  • метод readAllBytes,
    который читает все байты из потока
  • класс FileOutputStream,
    который записывает байты в файл
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить