Šajā apmācībā mēs ar piemēra palīdzību uzzināsim par Java InputStream klasi un tās metodēm.
InputStream
No klases java.io
paketē ir abstrakta superclass kas apzīmē ievades plūsma bytes.
Tā kā InputStream
tā ir abstrakta klase, tā pati par sevi nav noderīga. Tomēr tā apakšklases var izmantot datu lasīšanai.
InputStream apakšklases
Lai izmantotu vietnes funkcionalitāti InputStream
, mēs varam izmantot tās apakšklases. Daži no tiem ir:
- FileInputStream
- ByteArrayInputStream
- ObjectInputStream
Mēs uzzināsim par visām šīm apakšklasēm nākamajā apmācībā.
Izveidojiet InputStream
Lai izveidotu InputStream, mums vispirms ir jāimportē java.io.InputStream
pakotne. Pēc pakotnes importēšanas mēs varam izveidot ievades straumi.
// Creates an InputStream InputStream object1 = new FileInputStream();
Šeit mēs esam izveidojuši ievades straumi, izmantojot FileInputStream
. Tas ir tāpēc, ka InputStream
tā ir abstrakta klase. Tādējādi mēs nevaram izveidot objektu InputStream
.
Piezīme . Mēs varam izveidot ievades straumi arī no citām InputStream
.
InputStream metodes
InputStream
Klase nodrošina dažādas metodes, kas tiek īstenoti ar tās apakšklases. Šeit ir dažas no visbiežāk izmantotajām metodēm:
read()
- nolasa vienu baitu datu no ievades straumesread(byte() array)
- nolasa baitus no straumes un glabā norādītajā masīvāavailable()
- atgriež ievades straumē pieejamo baitu skaitumark()
- atzīmē ievades straumes pozīciju, līdz kurai dati ir nolasītireset()
- atgriež vadību straumes vietā, kur tika iestatīta atzīmemarkSupported()
- pārbauda, vai plūsmā tiek atbalstītamark()
unreset()
metodeskips()
- izlaiž un izmet norādīto baitu skaitu no ievades straumesclose()
- aizver ievades straumi
Piemērs: InputStream, izmantojot FileInputStream
Lūk, kā mēs varam ieviest, InputStream
izmantojot FileInputStream
klasi.
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 izlasīt šo failu, izmantojot FileInputStream
(apakšklasi InputStream
).
import java.io.FileInputStream; import java.io.InputStream; public class Main ( public static void main(String args()) ( byte() array = new byte(100); try ( InputStream input = new FileInputStream("input.txt"); System.out.println("Available bytes in the file: " + input.available()); // Read byte from the input stream input.read(array); System.out.println("Data read from the file: "); // Convert byte array into string String data = new String(array); System.out.println(data); // Close the input stream input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Rezultāts
Available bytes in the file: 35 Data read from the file: This is a line of text inside the file
Iepriekš minētajā piemērā mēs esam izveidojuši ievades straumi, izmantojot FileInputStream
klasi. Ievades straume ir saistīta ar failu input.txt .
InputStream input = new FileInputStream("input.txt");
Lai lasītu datus no faila input.txt , mēs esam ieviesuši šīs divas metodes.
input.read(array); // to read data from the input stream input.close(); // to close the input stream
Lai uzzinātu vairāk, apmeklējiet Java InputStream (oficiālā Java dokumentācija).