Hvordan lese fra en inngangs Stream i Java

Hvordan lese fra en inngangs Stream i Java


Java-språket gir en rekke standardfunksjoner for inngang og utgang. Du kan enkelt gjøre bruk av disse funksjonene i programmene dine, slik at du kan behandle innspill fra eksterne ressurser, for eksempel filer. Ved hjelp av input stream klasser i Java, kan programmene lese data fra et angitt sted. Den Input klassen selv er abstrakt, slik at det ikke kan startes, men du kan bruke noen av sine underklasser, for eksempel Fileinputstream-klassen. Man kan lese data på forskjellige måter, for eksempel en enkelt byte om gangen, for hvert tegn forekommer i det ytre kilde.

Bruksanvisning

1 Lag en inngang Stream objekt i programmet. Skriv inn følgende Java-kode, og skaper en ny forekomst av Fileinput klassen og passerer den plasseringen av filen du har planer om å lese som en parameter:

Fileinput myInputStream = new Fileinputstream ( "inputtext.txt");

Endre parameteren "inputtext.txt" som passer ressursen du bruker, med enten en relativ eller absolutt URL. I dette tilfellet er det relativ referanse til en tekstfil i samme katalog som programmet koden.

2 Legg en prøve blokk til koden. Hvis du programmerer i et integrert utviklingsmiljø, eller IDE, merker du at en feil har blitt fremhevet fordi koden ikke er inneholdt i en prøve blokk. Dette er i tilfelle ressursen du prøver å lese fra kan ikke bli funnet eller åpnes. Alter koden som følger, og legger til en prøve blokk og en catch-blokken for å fortelle programmet hva du skal gjøre hvis det er et problem å få tilgang til filen, i så fall et unntak.

try {

// Oppretter en inngang Stream

Fileinput myInputStream = new Fileinputstream ( "inputtext.txt");

// Videre behandling her

}

catch (Exception e) {System.out.println (e.getMessage ()); }

Dette stopper programmet fra å krasje hvis filen ikke blir funnet.

3 Les fra input stream. Legg til følgende linje med kode inne i forsøk blokken etter linjen skape Input Stream objekt:

// Lese en karakter

int inputData = myInputStream.read ();

Denne koden leser et enkelt tegn fra dine innspill ressurs som et heltall. Koden kan deretter utføre enhver behandling nødvendig på det tegnet. For øyeblikket er alt du har gjort lest det første tegnet i filen, så du må sette programmet opp for å fortsette.

4 Loop gjennom resten av dine innspill ressurs. Legg til følgende kode, fortsatt innenfor prøve blokken etter linjen lest den første tegn fra filen:

while (inputData! = -1) {

// Utgangs dataene leses som et tegn

System.out.print ((char) inputData);

// Lese neste tegn

inputData = myInputStream.read ();

}

Dette mens loop fortsetter til input stream objektet møter tegnet som indikerer slutten av filen er nådd. Dette eksemplet skriver rett og slett dataene leses ut til standard ut konsollen, men du kan utføre andre oppgaver her som prosjektet krever.

5 Lagre programmet ditt, og kompilere og kjøre den til å teste den. Du bør se innholdet i filen skrives ut til konsollen eller en feilmelding hvis filen ikke ble funnet eller lest fra. Eksperimenter ved å endre koden i mens loop for å utføre ulike typer behandling på data som du leser.

Hint

  • Ta en titt på de ulike typer innspill bekker Java gir ved å se på online Java Platform Standard Ed. 6 Klasse Input siden under direkte kjent Subklasser delen.
  • Aldri anta at det ikke vil være et problem å lese fra en ekstern ressurs, som dette er alltid en mulighet.