logo

Tok znakov proti toku bajtov v Javi

Tok je neprekinjen tok podatkov. V Javi se V/I tokovi uporabljajo za branje iz vhodnih virov ali pisanje v izhodne cilje, kot so datoteke. Zagotavljajo način za zaporedni dostop do podatkov. Paket java.io vključuje razrede za ravnanje s tokovi bajtov in znakov ter tudi za pretvorbo med njimi.

  • Vhodni tok: bere podatke iz vira. 
  • Izhodni tok: zapiše podatke na cilj. 

Kdaj uporabiti pretok znakov prek pretoka bajtov:

V Javi so znaki shranjeni z uporabo konvencij Unicode. Tok znakov je uporaben, ko želimo obdelati besedilne datoteke. Te besedilne datoteke je mogoče obdelati znak za znakom. Velikost znakov je običajno 16 bitov.



Kdaj uporabiti bajtni tok prek toka znakov:

Bajtno usmerjeno bere bajt za bajtom. Bajtni tok je primeren za obdelavo neobdelanih podatkov, kot so binarne datoteke.

Ključne točke pri uporabi in delu s katerim koli od zgornjih tokov:

  • Razredi znakovnega toka se običajno končajo z Reader/Writer, medtem ko se razredi bajtnega toka končajo z InputStream/OutputStream.
  • Primeri kod v tem članku uporabljajo tokove brez medpomnjenja, ki so manj učinkoviti. Za boljšo zmogljivost jih običajno zavijemo z BufferedReader/BufferedWriter (tokovi znakov) ali BufferedInputStream/BufferedOutputStream (tokovi bajtov).
  • Po uporabi vedno zaprite tokove, da sprostite vire in preprečite napake.
  • Zgornje kode morda ne bodo delovale v spletnih prevajalnikih, ker datoteke morda ne obstajajo.

Tok znakov

V Javi so znaki shranjeni z uporabo konvencij Unicode. Tok znakov nam samodejno omogoča branje/pisanje podatkov znak za znakom. FileReader in FileWriter sta na primer tokova znakov, ki se uporabljata za branje iz vira in pisanje v cilj.

ne_unicode_bajti' title=Tokovi znakov

Primer

rekha starost
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();  }  } } 

Izhod:

Zapisuje vsebino v ciljno datoteko znak za znakom

Program uspešno izveden

Tok bajtov

Bajtni tok v Javi je tok, ki obravnava vhod in izhod neobdelanih 8-bitnih binarnih podatkov. Uporablja se predvsem za branje in pisanje nebesedilnih podatkov, kot so slike, avdio video ali katera koli binarna datoteka. Na primer FileInputStream se uporablja za branje iz vira in FileOutputStream za pisanje v cilj.

primer:

izbriši zadnjo objavo git
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();  }  } } 

Izhod:

Program uspešno izveden

Razlike med tokom znakov in bajtnim tokom

VidikTok znakovTok bajtov
Obdelana vrsta podatkov16-bitni znaki Unicode (besedilo)8-bitni neobdelani podatki (binarni)
Pouk se konča zBralec / PisateljInputStream / OutputStream
Primerno zaBesedilne datoteke Podatki UnicodeSlike, avdio video binarne datoteke
PretvorbaSamodejno pretvori bajte v znakeNobena pretvorba ne deluje z neobdelanimi bajti
PrimeriFileReader FileWriterFileInputStream FileOutputStream

Sorodni članek

  • Java IO - Vhod/izhod v Javi s primeri