En strøm er en kontinuerlig strøm af data. I Java bruges I/O-streams til at læse fra inputkilder eller skrive til outputdestinationer såsom filer. De giver en måde at få adgang til data sekventielt. Java.io-pakken inkluderer klasser til håndtering af både byte-strømme og karakterstrømme og også til konvertering mellem dem.
- Inputstrøm: læser data fra kilden.
- Outputstrøm: skriver data til en destination.
Hvornår skal du bruge Character Stream over Byte Stream:
I Java gemmes tegn ved hjælp af Unicode-konventioner. Tegnstrøm er nyttig, når vi vil behandle tekstfiler. Disse tekstfiler kan behandles tegn for tegn. Tegnstørrelse er typisk 16 bit.
fjern første tegn i excel
Hvornår skal du bruge Byte Stream over Character Stream:
Byteorienteret læser byte for byte. En bytestrøm er velegnet til at behandle rådata som binære filer.
Nøglepunkter ved brug og håndtering af nogen af ovenstående streams:
- Karakterstreamklasser slutter normalt med Reader/Writer, mens bytestreamklasser slutter med InputStream/OutputStream.
- Eksempelkoderne i denne artikel bruger ikke-buffrede streams, som er mindre effektive. For bedre ydeevne pakker vi dem almindeligvis ind med BufferedReader/BufferedWriter (tegnstrømme) eller BufferedInputStream/BufferedOutputStream (bytestrømme).
- Luk altid streams efter brug for at frigøre ressourcer og forhindre fejl.
- Ovenstående koder kører muligvis ikke i online-kompilere, da filer muligvis ikke eksisterer.
Karakterstrøm
I Java gemmes tegn ved hjælp af Unicode-konventioner. Tegnstrøm giver os automatisk mulighed for at læse/skrive data tegn for tegn. For eksempel er FileReader og FileWriter karakterstrømme, der bruges til at læse fra kilden og skrive til destinationen.
KarakterstrømmeEksempel
mysql oprette brugerJava
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(); } } }
Produktion:
Skriver indhold til målfilen tegn for tegn
eksempler på java-kodeProgram udført med succes
Byte Stream
En byte-stream i Java er en strøm, der håndterer input og output af rå 8-bit binære data. Det bruges hovedsageligt til at læse og skrive ikke-tekstdata, såsom billeder, lyd-video eller enhver binær fil. F.eks FileInputStream bruges til at læse fra kilden og FileOutputStream til at skrive til destinationen.
Eksempel:
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(); } } }
Produktion:
Program udført med succes
Forskelle i karakterstream vs bytestream
| Aspekt | Karakterstrøm | Byte Stream |
|---|---|---|
| Datatype håndteret | 16-bit Unicode-tegn (tekst) | 8-bit rådata (binær) |
| Klasser afsluttes med | Læser/skribent | InputStream / OutputStream |
| Velegnet til | Tekstfiler Unicode-data | Billeder lyd video binære filer |
| Omdannelse | Konverterer bytes til tegn automatisk | Ingen konvertering virker med rå bytes |
| Eksempler | FileReader FileWriter | FileInputStream FileOutputStream |
Relateret artikel
- Java IO - Input/Output i Java med eksempler