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.
Tokovi znakovPrimer
rekha starostJava
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 gitJava
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
| Vidik | Tok znakov | Tok bajtov |
|---|---|---|
| Obdelana vrsta podatkov | 16-bitni znaki Unicode (besedilo) | 8-bitni neobdelani podatki (binarni) |
| Pouk se konča z | Bralec / Pisatelj | InputStream / OutputStream |
| Primerno za | Besedilne datoteke Podatki Unicode | Slike, avdio video binarne datoteke |
| Pretvorba | Samodejno pretvori bajte v znake | Nobena pretvorba ne deluje z neobdelanimi bajti |
| Primeri | FileReader FileWriter | FileInputStream FileOutputStream |
Sorodni članek
- Java IO - Vhod/izhod v Javi s primeri