Character Stream vs Byte Stream i Java
En strøm er en kontinuerlig strøm av data. I Java brukes I/O-strømmer til å lese fra inngangskilder eller skrive til utdatamål som filer. De gir en måte å få tilgang til data sekvensielt. Java.io-pakken inkluderer klasser for håndtering av både bytestrømmer og karakterstrømmer og også for konvertering mellom dem.
- Inndatastrøm: leser data fra kilden.
- Utdatastrøm: skriver data til en destinasjon.
Når du skal bruke Character Stream over Byte Stream:
I Java lagres tegn ved hjelp av Unicode-konvensjoner. Tegnstrøm er nyttig når vi ønsker å behandle tekstfiler. Disse tekstfilene kan behandles tegn for tegn. Tegnstørrelsen er vanligvis 16 biter.
Når du skal bruke Byte Stream over Character Stream:
Byteorientert leser byte for byte. En bytestrøm er egnet for å behandle rådata som binære filer.
Nøkkelpunkter ved bruk og håndtering av noen av strømmene ovenfor:
- Tegnstrømklasser slutter vanligvis med Reader/Writer, mens bytestrømklasser slutter med InputStream/OutputStream.
- Eksempelkodene i denne artikkelen bruker ubuffrede strømmer som er mindre effektive. For bedre ytelse pakker vi dem vanligvis inn med BufferedReader/BufferedWriter (tegnstrømmer) eller BufferedInputStream/BufferedOutputStream (bytestrømmer).
- Steng alltid strømmer etter bruk for å frigjøre ressurser og forhindre feil.
- Kodene ovenfor kjører kanskje ikke i online kompilatorer, da filer kanskje ikke eksisterer.
Karakterstrøm
I Java lagres tegn ved hjelp av Unicode-konvensjoner. Tegnstrøm lar oss automatisk lese/skrive data tegn for tegn. For eksempel FileReader og FileWriter er tegnstrømmer som brukes til å lese fra kilden og skrive til destinasjonen.
Karakterstrømmer Eksempel
Java import java.io.* ; public class GFG { public static void main ( String [] args ) throws IOException { // Initially assigning null as we have not read anything FileReader sourceStream = null ; try { // Reading from file sourceStream = new FileReader ( '/Users/mayanksolanki/Desktop/demo.rtf' ); // Reading sourcefile and writing content to target file character by character. int temp ; // If there is content inside file than read while (( temp = sourceStream . read ()) != - 1 ) System . out . println (( char ) temp ); System . out . print ( 'Program successfully executed' ); } finally { if ( sourceStream != null ) sourceStream . close (); } } }
Produksjon:
Skriver innhold til målfilen tegn for tegn
Programmet ble utført
Byte Stream
En bytestrøm i Java er en strøm som håndterer input og output av rå 8-bits binære data. Den brukes hovedsakelig til å lese og skrive ikke-tekstdata som bilder, lydvideo eller en hvilken som helst binær fil. For eksempel FileInputStream brukes til å lese fra kilden og FileOutputStream for å skrive til destinasjonen.
Eksempel:
Java import java.io.* ; public class GFG { public static void main ( String [] args ) throws IOException { // Initially assigning null ot objects for reading and writing to file FileInputStream sourceStream = null ; FileOutputStream targetStream = null ; try { // Passing the files via local directory sourceStream = new FileInputStream ( '/Users/mayanksolanki/Desktop/demo.rtf' ); targetStream = new FileOutputStream ( '/Users/mayanksolanki/Desktop/democopy.rtf' ); // Reading source file and writing content to file byte by byte int temp ; // If there is content inside file than read while (( temp = sourceStream . read ()) != - 1 ) targetStream . write (( byte ) temp ); System . out . print ( 'Program successfully executed' ); } // finally block that executes for sure where we are closing file connections to avoid memory leakage finally { if ( sourceStream != null ) sourceStream . close (); if ( targetStream != null ) targetStream . close (); } } }
Produksjon:
Programmet ble utført
Forskjeller mellom karakterstrøm og bytestrøm
| Aspekt | Karakterstrøm | Byte Stream |
|---|---|---|
| Datatype behandlet | 16-bits Unicode-tegn (tekst) | 8-bits rådata (binær) |
| Klassene avsluttes med | Leser / skribent | InputStream / OutputStream |
| Egnet for | Tekstfiler Unicode-data | Bilder lyd video binære filer |
| Omdannelse | Konverterer byte til tegn automatisk | Ingen konvertering fungerer med råbyte |
| Eksempler | FileReader FileWriter | FileInputStream FileOutputStream |
Relatert artikkel
- Java IO - Input/Output i Java med eksempler