Јава ФилеИнпутСтреам (са примерима)

У овом упутству ћемо научити о Јава ФилеИнпутСтреам и његовим методама уз помоћ примера.

FileInputStreamКласа у java.ioпакету може да се користи за читање података (Б) из датотеке.

Проширује InputStreamапстрактну класу.

Пре него што научимо нешто FileInputStream, обавезно сазнајте више о Јава датотекама.

Направите ФилеИнпутСтреам

Да бисмо креирали улазни ток датотеке, прво морамо да увозимо java.io.FileInputStreamпакет. Једном када увозимо пакет, ево како можемо да креирамо ток уноса датотека у Јави.

1. Коришћење путање до датотеке

 FileInputStream input = new FileInputStream(stringPath); 

Овде смо креирали улазни ток који ће бити повезан са датотеком наведеном путем.

2. Коришћење објекта датотеке

 FileInputStream input = new FileInputStream(File fileObject); 

Овде смо креирали улазни ток који ће бити повезан са датотеком коју је одредио fileObject.

Методе ФилеИнпутСтреам

FileInputStreamКласа обезбеђује имплементација за различитим методама присутни у InputStreamкласи.

реад () Метода

  • read() - чита један бајт из датотеке
  • read(byte() array) - чита бајтове из датотеке и чува у наведеном низу
  • read(byte() array, int start, int length) - чита број бајтова једнак дужини из датотеке и чува у наведеном низу почев од почетка положаја

Претпоставимо да имамо датотеку која се зове инпут.ткт са следећим садржајем.

 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(); ) ) ) 

Оутпут

 Подаци у датотеци: Ово је ред текста унутар датотеке. 

У горњем примеру смо креирали улазни ток датотеке под називом инпут. Улазни ток повезан је са датотеком инпут.ткт .

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

Да бисмо прочитали податке из датотеке, користили смо read()методу унутар вхиле петље.

доступна () метода

Да бисмо добили број доступних бајтова, можемо користити 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()методу. На пример,

 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 бајтова података из улазног тока датотеке. Стога се бајтови који представљају текст „Ово“ не читају из улазног тока.

цлосе () Метода

Да затворимо ток уноса датотеке, можемо користити close()методу. Једном када се close()метода позове, не можемо користити улазни ток за читање података.

У свим горњим примерима користили смо close()методу да затворимо ток уноса датотеке.

Остале методе ФилеИнпутСтреам

Методе Описи
finalize() осигурава да је close()метода позвана
getChannel() враћа објекат FileChannelпридружен улазном току
getFD() враћа дескриптор датотеке повезан са улазним током
mark() означите позицију у улазном току до које су подаци прочитани
reset() враћа контролу на тачку у улазном току где је постављена ознака

Да бисте сазнали више, посетите Јава ФилеИнпутСтреам (званична Јава документација).

Занимљиви Чланци...