ComputereProgrammering

Java: InputStream. indgangsstrømme

Java, ligesom mange moderne programmeringssprog, støtter gennemførelsen af datainput vandløb. I Java InputStream er basen klassen for bytestrømme. Denne klasse er abstrakt, der er i løbet af det program, vi kan ikke skabe en instans af det. Men io pakke har et sæt af klasser, der arver og udvider funktionaliteten af InputStream. For at bruge denne klasse i din kode, skal det importeres fra java.io.InputStream pakke. Dernæst betragter vi den grundlæggende funktionalitet, der giver en InputStream klasse, og de vigtigste klasser, der implementerer det.

InputStream klassemetoder

Inden vi går videre til en detaljeret undersøgelse af InputStream klasse metoder, bør det nævnes, at det implementerer aflukkes og AutoCloseable grænseflader. Grænseflade lukbar fortæller os, at ved afslutningen af arbejdet med strømmen af det nødvendigvis skal være lukket. Dette gøres ved anvendelse af en metode tæt (). Da de fleste af InputStream klassemetoder i tilfælde af fejl genererer en undtagelse typen IOException, alle operationer, der kræves til at gennemføre en prøve blok og en fremgangsmåde tæt () endelig gøre en enhed, således at den udløses afhængigt af resultatet af operationen til at prøve legeme.

AutoCloseable grænseflade reducerer mængden af kode vedligeholdelse, da det giver mulighed for tæt () metode arbejde automatisk og ikke tilføje til din kode endelig blokere. Hvis du bruger den syvende eller senere version af Java, kan en InputStream placeres i såkaldte prøve med ressourcer, som alle operationer for at lukke strømmen tager over.

Overvej de grundlæggende metoder til InputStream klasse:

  • int tilgængelig () - returnerer en læse antal bytes;
  • int read () - tager den aktuelle byte af ressourcen og returnerer repræsentation heltal; hvis alle bytes læse, -1 returneres;
  • int read (byte [] buffer) - Læser bytene tilgængelige i bufferen i form af en byte array type (antal bytes læs buffer lig med den angivne størrelse og returnerer antallet af bytes, der læses lykkedes, og hvis alle tilgængelige bytes læse, returnerer -1);
  • int read (byte [] buffer, int offset, int antal bytes) - overbelastning af den tidligere metode, gør det samme, men med en angivet "offset" position og læser så meget som angivet i "antal byte";
  • lang spring (lang byte count) - antallet af bytes overspringninger og returnerer det faktiske antal savnet.

InputStream gennemføres flere klasser designet til at arbejde med forskellige kilder og typer af data. Nedenfor viser arven træet.

læse filer

Byte strøm til at læse data fra filer implementeres klasse FileInputStream. For at åbne en fil til læsning byte, nok til at skabe en instans af klassen, der passerer til sin konstruktør filnavnet som et argument. Hvis filen er overført til navnet ikke eksisterer, vil det kaste en undtagelse af typen FileNotFoundException.

I tilfælde af et vellykket åbent en fil, der arbejder med dem udført efter de metoder der er beskrevet ovenfor, som er efterfølgeren FileInputStream InputStream.

Læsning primitive datatyper

I ovenstående eksempel beskriver arbejde med byte værdier, som kan fortolkes som symboler. Men hvad hvis vi har brug for at læse et heltal, fraktioneret eller en boolesk værdi? For at gøre dette i Java InputStream indirekte udvider klassen DataInputStream. Denne klasse er en wrapper for InputStream, som ledes til det på skabelsen som en konstruktør argument. Denne form for tråd læser data i binær form.

DataInputStream implementerer også MATERIALE interface og dets metoder til læsning primitive datatyper. Nedenfor er en liste af disse metoder.

Metode navne taler for sig selv - hver af dem er designet til at læse en bestemt datatype.

Pufret input stream

Buffered stream dataaflæsning realiseres BufferedInputStream klasse i Java. InputStream er pakket ind i denne klasse. Denne klasse supplerer buffer strøm, så du kan læse på samme tid ikke én, men flere bytes. Dette gør det muligt at forbedre ydeevnen af operationen betydeligt. BufferedInputStream efterkommer InputStream er en indirekte og således arver alle ovennævnte metoder.

Denne klasse har to konstruktører:

  • BufferedInputStream (InputStream input stream);
  • BufferedInputStream (InputStream input stream, int buffer størrelse)

Underskrift designerne kan forstås, at det første sætter standard buffer størrelse, og i det andet er det muligt at indstille den manuelt.

konklusion

Vi gennemgik grundlæggende realisering af InputStream. Hvis du har brug for at konvertere de modtagne bytes til en streng i Java InputStream til String (), desværre, ikke overbelastes, så det bliver nødt til at bruge specialværktøj, f.eks IOUtils fra Apache Commons bibliotek.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 atomiyme.com. Theme powered by WordPress.