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.
FileOutputStream fos = new FileOutputStream("einzelnesbyte"); fos.write(8); //Erwartet einen int Wert in diesem Fall 8 fos.close();
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();
/* 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();
/* 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]); }
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 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();
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();
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();
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();
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();