Java Streams – Übersicht und Beispiele

java streams

Java Streams erlauben die Ausführung von Operationen auf Arrays und Listen. Folgend findet sich eine kleine Ansammlung an Beispielen, welche Ihnen eine grobe Übersicht verschaffen soll. Dieser Artikel ist für Sie interessant, wenn Sie via Java eine Datei schreiben wollen – sei es nun Datentypen, Strings oder Bytes.

Einzelnes Byte schreiben –> FileInputStream

FileOutputStream fos = new FileOutputStream("einzelnesbyte");
fos.write(8); //Erwartet einen int Wert in diesem Fall 8
fos.close();

Einzelnes Byte lesen –> FileInputStream

FileInputStream fis = new FileInputStream("einzelnesbyte");
int ausgabe = fis.read();
// Beim End of File wird -1 zurückgegeben
System.out.println(ausgabe);
//Achtung, mit jedem .read() aufruf wird der lesezeiger eine Position weiter geschoben.
//Ist das Zeilenende erreicht wird -1 zurück gegeben.
fis.close();

Bytearray schreiben –> FileOutputStream

/* Erstellen eines Bytearrays */
byte[] barray1 = {0,1,2,3,4,5,6,7,8,9,10};
 
FileOutputStream fos = new FileOutputStream("bytearray");
fos.write(barray1); //Erwartet ein ein byteArray in diesem Fall
fos.close();

Bytearray lesen –> FileInputStream

/* Erstellen eines Bytearrays zum Daten ablegen */
byte[] barray2 = new byte[11];
FileInputStream fis = new FileInputStream("bytearray");
int n = fis.read(barray2); //Hier werden die empfangenen Daten in ein Array abgelegt
//n ist hier die anzahl der gelesenen bytes
fis.close();
 
/* Zusätzlich noch die Ausgabe der empfangenen Daten */
for(int i = 0; i < n; i++) {
        System.out.println(barray2[i]);
}

Einzelnes Zeichen schreiben –> OutputStreamWriter via File FileOutStream

FileOutputStream fos = new FileOutputStream("zeichen2.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
 
//Zeichen oder String schreiben bleibt sich gleich (je nach Parameter
// in der Methode
osw.write("A");
osw.write("\n");
osw.write("Hallo Welt");
osw.close();

Einzelnes Zeichen lesen –> InputStreamWriter via FileInputStream

//Einzelnes Zeichen aus einer Datei lesen
FileInputStream fis = new FileInputStream("zeichen2.txt");
InputStreamReader isr = new InputStreamReader(fis);
 
isr.read(); //Liest ein einzelnes Zeichen aus der Datei aus
//Zurückgegebener Datentyp ist int, muss auf char gecastet werden
// Beim End of File wird -1 Zurückgegeben
 
char[] carray = new char[10];
isr.read(carray, 0, 3); //Legt die Zeichen im Array "carray"ab
//startet bei 0 und nimmt 3 Zeichen
 
//Ausgabe der einzelnen Zeichen
for(int i = 0; i<n; i++) {
          System.out.println((char)carray[i]);
          }
fis.close();

Zeile schreiben –>BufferedWriter via OutputStreamWriter via FileOutputStream

FileOutputStream fos = new FileOutputStream("D:\\zeichen3.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
 
bw.write("Hallo Welt die zweite");
fos.close();

Zeile lesen –> Buffered Reader via InputStreamReader via FileInputStream

FileInputStream fis = new FileInputStream("D:\\zeichen3.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);

System.out.println(br.readLine());
// Beim End of File wird null Zurückgegeben
fis.close();

Datentyp schreiben –> DataOutputStream via FileOutputStream

FileOutputStream fos = new FileOutputStream("meinedatei");
DataOutputStream dos = new DataOutputStream(fos);
 
dos.writeBoolean(false);
dos.writeDouble(400.0);
dos.writeInt(5);
//Es können unterschiedliche Datentypen in eine Datei geschrieben werden
fos.close();

Datentyp lesen –> DataInputStream via FileInputStream

FileInputStream fis = new FileInputStream("meinedatei");
DataInputStream dis = new DataInputStream(fis);
 
System.out.println(dis.readBoolean());
System.out.println(dis.readDouble());
System.out.println(dis.readInt());
// Bei jedem readX() Aufruf wird der Zeiger eins weiter gesetzt.
// Beim End of File wird eine EOFFileException zurückgegeben
// Der Datentyp-Aufruf muss mit dem Datentyp in der File
// überein Stimmen, sonst wird ein Datentyp falsch interpretiert und u.U.
// falsch gecastet
fis.close();
Phillip Groschup
Phillip Groschup
Phillip Groschup ist Geschäftsführer der UserMind GmbH und insbesondere für alle Webentwicklungen zuständig. Darunter fallen alle Entwicklungen von Performance-orientierten Websites - sowohl in der Frontend, als auch in der Backendprogrammierung mit Wordpress. Seit 2009 beschäftigt er sich außerdem mit den Themen Suchmaschininoptimierung (SEO) und Suchmaschinenwerbung (Google AdWords). Die Auswertung komplexer Daten zählt dabei zu seiner Leidenschaft.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.