Java: InputStream. Fluxuri de intrare
Java, ca multe limbi moderne de programare, sprijină implementarea fluxurilor de intrare de date. În Java, InputStream este clasa de bază pentru fluxurile de octeți. Această clasă este abstractă, adică în procesul programului nu putem crea instanța. Cu toate acestea, în pachetul io, există multe clase care moștenesc și extind funcționalitatea InputStream. Pentru a utiliza această clasă în codul dvs., trebuie să o importați din pachetul java.io.InputStream. Apoi, vom analiza funcționalitatea de bază oferită de clasa InputStream, precum și principalele clase care o implementează.
conținut
Metode pentru clasa InputStream
Înainte de a trece la un studiu detaliat al metodelor din clasa InputStream, trebuie menționat faptul că implementează interfețele Închis și Auto închide. Interfața Closeable ne spune că la închiderea firului trebuie să fie închis. Aceasta se face folosind metoda close (). Deoarece cele mai multe dintre metodele clasei InputStream în cazul unei erori generează un tip de excepție IOException, toate operațiunile necesare pentru a efectua un bloc try și o strânsă metodă () în cele din urmă face o unitate, astfel încât acesta este declanșat în funcție de rezultatul de funcționare pentru a încerca corp.
Interfața AutoCloseable reduce semnificativ cantitatea de cod de întreținere, deoarece permite în mod automat aproape metoda de lucru () și nu adăugați la codul de a bloca în cele din urmă. Dacă utilizați versiunea a șaptea sau mai târziu de Java, un InputStream poate fi plasat în așa-numitele încercați cu resurse care toate operațiunile pentru a închide fluxul preia.
Luați în considerare principalele metode ale clasei InputStream:
- int available () - Returnează numărul de octeți disponibili pentru citire;
- int read () - ia de la resursă octetul curent și îl returnează în reprezentarea întregului - dacă toate octeții sunt citiți, returnează -1;
- int read (byte [] buffer) - Citește octeți în disponibil tamponul menționat sub forma unui tip de matrice octet (numărul de octeți citit este egal cu o mărime predeterminată bufera- returnează numărul de octeți care ar putea prochitat- dacă toate octeți disponibile citit, returnează -1);
- int citit (buffer octet, int offset, int număr de octeți) - suprasarcină a metodei anterioare, face același lucru, dar cu poziția specificată în "offset" și citește cât mai multe specificate în "numărul de octeți";
- săriți lung (număr lung de octeți) - sări peste numărul specificat de octeți și returnează numărul real de octeți.
InputStream este implementat de mai multe clase, conceput pentru a lucra cu diferite surse și tipuri de date. Pomul mostenirii este prezentat mai jos.
Citirea fișierelor
Fluxul de octeți pentru citirea informațiilor din fișiere este implementat de clasa FileInputStream. Pentru a deschide un fișier pentru citirea octeților, este suficient să creați o instanță a acestei clase, trecând numele de fișier la constructor ca argument. Dacă fișierul cu numele dat nu există, va fi aruncată o excepție de tip FileNotFoundException.
În cazul unei deschideri reușite a unui fișier, lucrul cu acesta se realizează utilizând metodele descrise mai sus, deoarece FileInputStream este succesorul InputStream.
Citirea tipurilor de date primitive
Exemplul anterior descris de lucru cu valorile byte care pot fi interpretate ca simboluri. Dar dacă avem nevoie să citim o valoare întreagă, fracțională sau logică? Pentru aceasta, Java InputStream este extins indirect de clasa DataInputStream. Această clasă este wrapper-ul pentru InputStream, care este trecut la el atunci când este creat ca un argument pentru constructor. Acest tip de flux citește datele în formă binară.
DataInputStream implementează, de asemenea, interfața DataInput și metodele sale de citire a tipurilor de date primitive. Mai jos este o listă a acestor metode.
Numele metodelor vorbesc de la sine - fiecare dintre acestea este destinat citirii unui anumit tip de date.
Buffered stream de intrare
Tensiunea de citire a datelor tampon este implementată de clasa BufferedInputStream în Java. Intrarea de intrare este înfășurată în această clasă. Această clasă completează fluxul cu un buffer, ceea ce vă permite să citiți mai mult de un octet la un moment dat. Acest lucru face posibilă îmbunătățirea semnificativă a performanței operației. BufferedInputStream este un descendent indirect al InputStream și, în consecință, moștenește toate metodele de mai sus.
Această clasă are doi constructori:
- BufferedInputStream (flux de intrare InputStream);
- BufferedInputStream (fluxul de intrare InputStream, dimensiunea buffer-ului int)
Din semnătura constructorilor, puteți înțelege că prima stabilește dimensiunea buffer-ului în mod prestabilit, iar în al doilea este posibilă setarea manuală.
concluzie
Am acoperit implementarea de bază a InputStream. Dacă trebuie să convertiți octeții recepționați într-un șir, atunci în Java InputStream to String (), din păcate, nu este supraîncărcat, deci pentru aceasta va trebui să utilizați utilitare speciale, de exemplu IOUtils din biblioteca Apache Commons.
- Java: excepții și manipularea acestora
- Cum se instalează Java pe Windows 7
- Primul program Java este Hello World
- Limbaj de programare Java
- Țigarete Java: descriere și tipuri
- Mijloacele Java de șiruri de caractere. Sortarea unui matrice în Java. Dispozitiv Java de două…
- Java: expresii regulate, caractere speciale
- Encapsularea este ceea ce? Încapsulare în programare
- Programare: Java. Tipuri de date
- Clasă și metodă abstractă: descriere, caracteristici și caracteristici. Care este diferența dintre…
- Mediu de dezvoltare integrat Java
- Java de primăvară: elementele de bază și lecțiile pentru începători
- Întrebarea despre timp: cum se face formatul datei și unde se caută esența dată
- Java generice: descriere și metode
- BigInteger Java: lucrul cu numere mari
- Java Array. Arrays în Java. Java pentru începători
- Java: lucrul cu fișiere - scrierea, citirea, ștergerea
- Elemente ale modelului obiect Java: clasă abstractă, interfață
- Cum se activează Java în Firefox pentru probleme de blocare
- Cum se elimină java de pe computer? Este ușor!
- Cum se scrie într-un fișier din Java