Šajā apmācībā mēs ar piemēru palīdzību uzzināsim par Java BufferedReader un tā metodēm.
BufferedReader
No klases java.io
paketē var lietot kopā ar citiem lasītājiem lasīt datus (rakstzīmes) efektīvāk.
Tas paplašina abstrakto klasi Reader
.
BufferedReader darbs
Tiek BufferedReader
uzturēts 8192 rakstzīmju iekšējais buferis .
Veicot lasīšanas darbību BufferedReader
, no diska tiek nolasīta rakstzīmju daļa un saglabāta iekšējā buferī. Un no iekšējā bufera rakstzīmes tiek nolasītas atsevišķi.
Tādējādi tiek samazināts sakaru skaits uz disku. Tāpēc rakstzīmju lasīšana ir ātrāka BufferedReader
.
Izveidojiet BufferedReader
Lai izveidotu a BufferedReader
, mums vispirms ir jāimportē java.io.BuferedReader
pakete. Kad pakotne ir importēta, lasītāju var izveidot šādi.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
Iepriekš minētajā piemērā mēs esam izveidojuši BufferedReader
nosauktu buferi ar FileReader
nosaukto failu.
Šeit iekšējam buferim BufferedReader
ir noklusējuma lielums 8192 rakstzīmes. Tomēr mēs varam norādīt arī iekšējā bufera lielumu.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Buferis palīdzēs ātrāk nolasīt rakstzīmes no failiem.
BufferedReader metodes
BufferedReader
Klase nodrošina implementācijas dažādām metodēm klāt Reader
.
lasīt () Metode
read()
- nolasa vienu rakstzīmi no lasītāja iekšējā buferaread(char() array)
- nolasa rakstzīmes no lasītāja un saglabā norādītajā masīvāread(char() array, int start, int length)
- nolasa no lasītāja rakstzīmju skaitu, kas vienāds ar garumu, un glabā norādītajā masīvā, sākot ar pozīcijas sākumu
Piemēram, 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 failu, izmantojot BufferedReader
.
import java.io.FileReader; import java.io.BufferedReader; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileReader FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Reads characters input.read(array); System.out.println("Data in the file: "); System.out.println(array); // Closes the reader 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 buferētu lasītāju ar nosaukumu input. Buferētais lasītājs ir saistīts ar failu input.txt .
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Šeit mēs izmantojām read()
metodi, lai nolasītu rakstzīmju masīvu no buferētā lasītāja iekšējā bufera.
izlaist () metode
Lai izmestu un izlaistu norādīto rakstzīmju skaitu, mēs varam izmantot skip()
metodi. Piemēram,
import java.io.FileReader; import java.io.BufferedReader; public class Main ( public static void main(String args()) ( // Creates an array of characters char() array = new char(100); try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileReader file = new FileReader("input.txt"); // Creates a BufferedReader BufferedReader input = new BufferedReader(file); // Skips the 5 characters input.skip(5); // Reads the characters input.read(array); System.out.println("Data after skipping 5 characters:"); System.out.println(array); // closes the reader input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Rezultāts
Dati pēc 5 rakstzīmju izlaišanas: ir teksta rindiņa faila iekšpusē.
Iepriekš minētajā piemērā mēs izmantojām skip()
metodi, lai izlaistu 5 rakstzīmes no failu lasītāja. Tādējādi, rakstzīmes 'T'
, 'h'
, 'i'
, 's'
un ' '
ir izlaidis no sākotnējā faila.
aizvērt () metode
Lai aizvērtu buferēto lasītāju, mēs varam izmantot close()
metodi. Kad close()
metode ir izsaukta, mēs nevaram izmantot lasītāju datu lasīšanai.
Citas BufferedReader metodes
Metode | Apraksts |
---|---|
ready() | pārbauda, vai failu lasītājs ir gatavs lasīšanai |
mark() | atzīmējiet lasītāja vietu, līdz kurai dati ir nolasīti |
reset() | atgriež vadību lasītājā, kur zīme tika uzstādīta |
Lai uzzinātu vairāk, apmeklējiet Java BufferedReader (oficiālā Java dokumentācija).