Az adatfolyam folyamatos adatáramlás. A Java-ban az I/O adatfolyamokat bemeneti forrásokból olvassák, vagy kimeneti helyekre, például fájlokra írják. Lehetővé teszik az adatok egymás utáni elérését. A java.io csomag tartalmaz osztályokat a bájtfolyamok és karakterfolyamok kezelésére, valamint a köztük lévő konvertálásra.
- Bemeneti adatfolyam: beolvassa az adatokat a forrásból.
- Kimeneti adatfolyam: adatokat ír egy célhelyre.
Mikor érdemes a karakterfolyamot bájtfolyamon keresztül használni:
A Java nyelven a karakterek tárolása Unicode konvenciókkal történik. A karakterfolyam akkor hasznos, ha szöveges fájlokat szeretnénk feldolgozni. Ezeket a szöveges fájlokat karakterenként lehet feldolgozni. A karakter mérete általában 16 bit.
Mikor érdemes a bájtos adatfolyamot karakterfolyamon keresztül használni:
Bájt orientált bájtonként olvas. A bájtfolyam nyers adatok, például bináris fájlok feldolgozására alkalmas.
mi az a címtárbeküldés
Főbb pontok a fenti adatfolyamok bármelyikének használata és kezelése során:
- A karakterfolyam-osztályok általában Reader/Writer-re, míg a bájtfolyam-osztályok InputStream/OutputStream-re végződnek.
- A cikkben szereplő példakódok nem pufferelt adatfolyamokat használnak, amelyek kevésbé hatékonyak. A jobb teljesítmény érdekében általában a BufferedReader/BufferedWriter (karakterfolyamok) vagy a BufferedInputStream/BufferedOutputStream (byte-folyamok) becsomagoljuk őket.
- Használat után mindig zárja be a streameket az erőforrások felszabadítása és a hibák elkerülése érdekében.
- Előfordulhat, hogy a fenti kódok nem futnak az online fordítókban, mivel előfordulhat, hogy nem léteznek fájlok.
Karakterfolyam
A Java nyelven a karakterek tárolása Unicode konvenciókkal történik. A karakterfolyam automatikusan lehetővé teszi számunkra, hogy karakterenként olvassuk/írjuk az adatokat. Például a FileReader és a FileWriter karakterfolyamok, amelyek a forrásból való olvasáshoz és a célba való íráshoz használhatók.
KarakterfolyamokPélda
Javaimport 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(); } } }
Kimenet:
Karakterenként ír tartalmat a célfájlba
A program sikeresen végrehajtva
Byte Stream
A Java bájtfolyama olyan adatfolyam, amely kezeli a nyers 8 bites bináris adatok be- és kimenetét. Főleg nem szöveges adatok, például képek audio-videó vagy bármilyen bináris fájl olvasására és írására használják. Például FileInputStream a forrásból való olvasáshoz, a FileOutputStream pedig a célba való íráshoz használatos.
Példa:
Javaimport 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(); } } }
Kimenet:
A program sikeresen végrehajtva
A karakterfolyam és a bájtfolyam különbségei
| Vonatkozás | Karakterfolyam | Byte Stream |
|---|---|---|
| Kezelt adattípus | 16 bites Unicode karakterek (szöveg) | 8 bites nyers adat (bináris) |
| Az órák azzal érnek véget | Olvasó/író | InputStream / OutputStream |
| Alkalmas | Szöveges fájlok Unicode adatok | Képek audio-videó bináris fájlok |
| Átalakítás | A bájtokat automatikusan karakterekké alakítja | A konverzió nem működik nyers bájtokkal |
| Példák | FileReader FileWriter | FileInputStream FileOutputStream |
Kapcsolódó cikk
- Java IO - Bemenet/kimenet Java-ban példákkal