Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Освоение Java FileInputStream: практическое руководство с примерами кода

Класс Java FileInputStream

Класс FileInputStream из пакета java.io позволяет читать сырые байтовые данные из файлов. Он расширяет абстрактный класс InputStream, предоставляя конкретную реализацию для файлового ввода-вывода.


Создание FileInputStream

Импортируйте класс и инстанцируйте его либо путём к файлу, либо объектом File.

1. Использование пути к файлу

FileInputStream input = new FileInputStream("path/to/file.txt");

Открывает поток, связанный с файлом по указанному пути.

2. Использование объекта File

File file = new File("file.txt");
FileInputStream input = new FileInputStream(file);

Ключевые методы FileInputStream

Класс реализует все абстрактные методы InputStream и добавляет свои. Ниже самые используемые.

read()

Пример: побайтовое чтение текстового файла.

import java.io.FileInputStream;

public class Main {
    public static void main(String[] args) {
        try (FileInputStream input = new FileInputStream("input.txt")) {
            System.out.println("Данные в файле:");
            int byteRead;
            while ((byteRead = input.read()) != -1) {
                System.out.print((char) byteRead);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Вывод

Данные в файле: This is a line of text inside the file.

available()

Возвращает количество байтов, которые можно прочитать без блокировки.

try (FileInputStream input = new FileInputStream("input.txt")) {
    System.out.println("Доступно в начале: " + input.available());
    input.read();
    input.read();
    input.read();
    System.out.println("Доступно после 3 чтений: " + input.available());
}

Вывод

Доступно в начале: 39
Доступно после 3 чтений: 36

skip()

Продвигает позицию потока на указанное число байт, отбрасывая их.

try (FileInputStream input = new FileInputStream("input.txt")) {
    input.skip(5); // пропускаем "This "
    int byteRead;
    while ((byteRead = input.read()) != -1) {
        System.out.print((char) byteRead);
    }
}

Вывод

is a line of text inside the file.

close()

Закрывает поток и освобождает ресурсы. Блок try-with-resources (как выше) обеспечивает автоматический вызов close().

Дополнительные методы FileInputStream

МетодОписание
finalize()Гарантирует вызов close() перед сборкой мусора.
getChannel()Возвращает связанный FileChannel.
getFD()Предоставляет базовый файловый дескриптор.
mark(int readlimit)Помечает текущую позицию для последующего сброса.
reset()Возвращает поток к последней отмеченной позиции.

Для глубокого изучения см. официальную документацию: Java FileInputStream (официальная документация).

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Оператор instanceof в Java: полное руководство с примерами
  3. Статические вложенные классы в Java: использование, отличия и примеры
  4. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  5. Паттерн Singleton в Java: как реализовать и безопасно использовать
  6. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  7. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  8. Освоение Java BufferedReader: эффективная обработка символьных потоков
  9. Освоение Java Scanner: подробное руководство с практическими примерами
  10. Освоение Java Generics: создание переиспользуемого, типобезопасного кода