Tässä opetusohjelmassa opitaan Java BufferedReaderista ja sen menetelmistä esimerkkien avulla.
BufferedReader
Luokan java.io
paketti voidaan käyttää muiden lukijoiden lukea tietoja (merkit) tehokkaammin.
Se laajentaa abstraktia luokkaa Reader
.
Puskuroidun lukijan toiminta
BufferedReader
On sisäisen puskurin 8192 merkkiä .
Lukuoperaation aikana on BufferedReader
, palan merkkiä luetaan levyltä ja tallennetaan sisäiseen puskuriin. Sisäisestä puskurista merkit luetaan erikseen.
Siksi levylle tapahtuvan tiedonsiirron määrä vähenee. Siksi merkkien lukeminen on nopeampaa BufferedReader
.
Luo puskuroitu lukija
Paketin luomiseksi BufferedReader
meidän on java.io.BuferedReader
ensin tuotava paketti. Kun tuot paketin, voimme luoda lukijan seuraavasti.
// Creates a FileReader FileReader file = new FileReader(String file); // Creates a BufferedReader BufferedReader buffer = new BufferedReader(file);
Yllä olevassa esimerkissä olemme luoneet BufferedReader
nimetyn puskurin FileReader
nimeltä mainitun tiedoston kanssa.
Tässä sisäisen puskurin BufferedReader
oletusarvo on 8192 merkkiä. Voimme kuitenkin määrittää myös sisäisen puskurin koon.
// Creates a BufferdReader with specified size internal buffer BufferedReader buffer = new BufferedReader(file, int size);
Puskuri auttaa lukemaan merkkejä tiedostoista nopeammin.
Menetelmät BufferedReader
BufferedReader
Luokka antaa toteutuksia eri menetelmiä läsnä Reader
.
read () Menetelmä
read()
- lukee yhden merkin lukijan sisäisestä puskuristaread(char() array)
- lukee merkit lukijalta ja tallentaa määritettyyn ryhmäänread(char() array, int start, int length)
- lukee lukijalta pituuden verran merkkien lukumäärän ja tallentaa määrätyn matriisin paikan alusta alkaen
Oletetaan esimerkiksi, että meillä on tiedosto nimeltä input.txt, jolla on seuraava sisältö.
This is a line of text inside the file.
Yritetään lukea tiedosto käyttämällä 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(); ) ) )
Tuotos
Tiedot tiedostossa: Tämä on tekstirivi tiedoston sisällä.
Yllä olevassa esimerkissä olemme luoneet puskuroidun lukijan nimeltä input. Puskuroitu lukija on linkitetty input.txt- tiedostoon.
FileReader file = new FileReader("input.txt"); BufferedReader input = new BufferedReader(file);
Tässä olemme käyttäneet read()
menetelmää lukemaan joukko merkkejä puskuroidun lukijan sisäisestä puskurista.
skip () Menetelmä
Hylkäämään ja ohittamaan määritetyn määrän merkkejä voimme käyttää skip()
menetelmää. Esimerkiksi,
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(); ) ) )
Tuotos
Tiedot 5 merkin ohittamisen jälkeen: on tekstirivi tiedoston sisällä.
Yllä olevassa esimerkissä olemme käyttäneet skip()
menetelmää ohittaa 5 merkkiä tiedostonlukijasta. Siten, hahmot 'T'
, 'h'
, 'i'
, 's'
ja ' '
ohitetaan alkuperäisestä tiedoston.
sulje () Menetelmä
Puskuroidun lukijan sulkemiseksi voimme käyttää close()
menetelmää. Kun close()
menetelmä on kutsuttu, emme voi käyttää lukijaa tietojen lukemiseen.
Muut puskuroidun lukijan menetelmät
Menetelmä | Kuvaus |
---|---|
ready() | tarkistaa, onko tiedostojen lukulaite valmis lukemaan |
mark() | merkitse lukijan sijainti, johon tiedot on luettu |
reset() | palauttaa ohjaimen lukijan kohtaan, johon merkki asetettiin |
Lisätietoja on Java BufferedReader -ohjelmassa (virallinen Java-dokumentaatio).