Java FileInputStream (ar piemēriem)

Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java FileInputStream un tā metodēm.

FileInputStreamNo klases java.iopaketē var izmantot, lai lasītu datus (baitos) no failiem.

Tas paplašina InputStreamabstrakto klasi.

Pirms mēs uzzinām par FileInputStream, pārliecinieties, ka zināt par Java failiem.

Izveidojiet FileInputStream

Lai izveidotu faila ievades straumi, mums vispirms ir jāimportē java.io.FileInputStreampakotne. Kad pakotne ir importēta, šeit mēs varam izveidot failu ievades straumi Java.

1. Izmantojot ceļu uz failu

 FileInputStream input = new FileInputStream(stringPath); 

Šeit mēs esam izveidojuši ievades straumi, kas tiks saistīta ar ceļu norādīto failu.

2. Izmantojot faila objektu

 FileInputStream input = new FileInputStream(File fileObject); 

Šeit mēs esam izveidojuši ievades straumi, kas tiks saistīta ar failu, kuru norādījis fileObject.

FileInputStream metodes

FileInputStreamKlase nodrošina implementācijas dažādām metodēm prezentēt šajā InputStreamklasē.

lasīt () Metode

  • read() - no faila nolasa vienu baitu
  • read(byte() array) - nolasa baitus no faila un saglabā norādītajā masīvā
  • read(byte() array, int start, int length) - nolasa no faila garumu vienādu garumu un glabā norādītajā masīvā, sākot ar pozīcijas sākumu

Pieņemsim, ka mums ir fails ar nosaukumu input.txt ar šādu saturu.

 This is a line of text inside the file. 

Mēģināsim lasīt šo failu, izmantojot 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(); ) ) ) 

Rezultāts

 Dati failā: šī ir teksta rindiņa faila iekšpusē. 

Iepriekš minētajā piemērā mēs esam izveidojuši faila ievades straumi ar nosaukumu input. Ievades straume ir saistīta ar input.txt failu.

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

Lai nolasītu datus no faila, mēs esam izmantojuši read()metodi while ciklā.

pieejama () metode

Lai iegūtu pieejamo baitu skaitu, mēs varam izmantot available()metodi. Piemēram,

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

Rezultāts

 Pieejamie baiti sākumā: 39 Pieejamie baiti beigās: 36 

Iepriekš minētajā piemērā

  1. Vispirms mēs izmantojam available()metodi, lai pārbaudītu pieejamo baitu skaitu faila ievades straumē.
  2. Pēc tam mēs esam izmantojuši read()metodi 3 reizes, lai no faila ievades straumes nolasītu 3 baitus.
  3. Pēc baitu lasīšanas mēs atkal esam pārbaudījuši pieejamos baitus. Šoreiz pieejamie baiti samazinājās par 3.

izlaist () metode

Lai izmestu un izlaistu norādīto baitu skaitu, mēs varam izmantot skip()metodi. Piemēram,

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

Rezultāts

 Ievades straume pēc 5 baitu izlaišanas: ir teksta rindiņa faila iekšpusē. 

Iepriekš minētajā piemērā mēs izmantojām skip()metodi, lai izlaistu 5 baitus datu no faila ievades straumes. Tādējādi baiti, kas attēlo tekstu "Šis", netiek nolasīti no ievades straumes.

aizvērt () metode

Lai aizvērtu faila ievades straumi, mēs varam izmantot close()metodi. Kad close()metode ir izsaukta, mēs nevaram izmantot ievades straumi datu nolasīšanai.

Visos iepriekš minētajos piemēros mēs izmantojām close()metodi, lai aizvērtu faila ievades straumi.

Citas FileInputStream metodes

Metodes Apraksti
finalize() nodrošina close()metodes izsaukšanu
getChannel() atgriež objektu, kas FileChannelsaistīts ar ievades straumi
getFD() atgriež faila deskriptoru, kas saistīts ar ievades straumi
mark() atzīmējiet ievades straumes pozīciju, līdz kurai dati ir nolasīti
reset() atgriež vadību tajā ievades straumes punktā, kurā tika iestatīta atzīme

Lai uzzinātu vairāk, apmeklējiet Java FileInputStream (oficiālā Java dokumentācija).

Interesanti raksti...