Java FileInputStream (с примерами)

В этом руководстве мы узнаем о Java FileInputStream и его методах с помощью примеров.

FileInputStreamКласс java.ioпакета может быть использован для чтения данных (в байтах) из файлов.

Он расширяет InputStreamабстрактный класс.

Прежде чем мы узнаем об этом FileInputStream, обязательно узнайте о файлах Java.

Создайте FileInputStream

Чтобы создать поток ввода файла, мы должны java.io.FileInputStreamсначала импортировать пакет. После импорта пакета вот как мы можем создать поток ввода файла в Java.

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

 FileInputStream input = new FileInputStream(stringPath); 

Здесь мы создали входной поток, который будет связан с файлом, указанным путем.

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

 FileInputStream input = new FileInputStream(File fileObject); 

Здесь мы создали входной поток, который будет связан с файлом, указанным в fileObject.

Методы FileInputStream

FileInputStreamКласс обеспечивает реализации для различных методов представления в InputStreamклассе.

read () Метод

  • read() - читает один байт из файла
  • read(byte() array) - читает байты из файла и сохраняет в указанном массиве
  • read(byte() array, int start, int length) - считывает из файла количество байтов, равное длине, и сохраняет в указанном массиве, начиная с позиции start

Предположим, у нас есть файл с именем input.txt со следующим содержимым.

 This is a line of text inside the file. 

Попробуем прочитать этот файл, используя FileInputStream.

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Вывод

 Данные в файле: это строка текста внутри файла. 

В приведенном выше примере мы создали поток ввода файла с именем input. Входной поток связан с файлом input.txt .

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

Для чтения данных из файла мы использовали read()метод внутри цикла while.

available () Метод

Чтобы получить количество доступных байтов, мы можем использовать available()метод. Например,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Вывод

 Доступных байтов в начале: 39 Доступных байтов в конце: 36 

В приведенном выше примере

  1. Сначала мы используем этот available()метод, чтобы проверить количество доступных байтов во входном потоке файла.
  2. Затем мы использовали этот read()метод 3 раза, чтобы прочитать 3 байта из входного потока файла.
  3. Теперь, после чтения байтов, мы снова проверили доступные байты. На этот раз количество доступных байтов уменьшилось на 3.

skip () Метод

Чтобы отбросить и пропустить указанное количество байтов, мы можем использовать skip()метод. Например,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Вывод

 Входной поток после пропуска 5 байтов: строка текста внутри файла. 

В приведенном выше примере мы использовали skip()метод для пропуска 5 байтов данных из входного потока файла. Следовательно, байты, представляющие текст «This» , не читаются из входного потока.

close () Метод

Чтобы закрыть поток ввода файла, мы можем использовать close()метод. После вызова close()метода мы не можем использовать входной поток для чтения данных.

Во всех приведенных выше примерах мы использовали этот close()метод для закрытия входного потока файла.

Другие методы FileInputStream

Методы Описания
finalize() гарантирует, что close()метод вызывается
getChannel() возвращает объект, FileChannelсвязанный с входным потоком
getFD() возвращает дескриптор файла, связанный с входным потоком
mark() отметить позицию во входном потоке, до которой были прочитаны данные
reset() возвращает элемент управления в точку во входном потоке, где была установлена ​​метка

Чтобы узнать больше, посетите Java FileInputStream (официальная документация по Java).

Интересные статьи...