logo

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.



hashing i datastruktur

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.

non_unicode_bytes' title=Karakterstrømmer

Eksempel

burak ozcivit
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

omvendt streng java

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

AspektKarakterstrømByte Stream
Datatype behandlet16-bits Unicode-tegn (tekst)8-bits rådata (binær)
Klassene avsluttes medLeser / skribentInputStream / OutputStream
Egnet forTekstfiler Unicode-dataBilder lyd video binære filer
OmdannelseKonverterer byte til tegn automatiskIngen konvertering fungerer med råbyte
EksemplerFileReader FileWriterFileInputStream FileOutputStream

Relatert artikkel

  • Java IO - Input/Output i Java med eksempler