Skip to content
This repository has been archived by the owner on Jul 15, 2019. It is now read-only.

Latest commit

 

History

History
93 lines (80 loc) · 2.93 KB

IOJava.md

File metadata and controls

93 lines (80 loc) · 2.93 KB

Eingabe / Ausgabe (IO) in Java

Ein / Ausgabe findet über Dateien oder Geräte statt.

  • Eine Datei oder Gerät wird als Folge eizelner Bytes (Byte Stream) betrachtet oder als Unicode-Stream.
  • IM Programm wird eine Datei / Geräte von einem Objekt einer Stream-Klasse repräsentiert.

Folgende abstrakte Klassen sin die Basisklassen aller Streamklassen.

  • InputStream
    • Klassen zum Byteweisen Lesen
  • Reader
    • Klassen zum Zeichenweisen (Unicode) Lesen
  • OutputStream
    • Klassen zum Byteweisen Schreiben
  • Writer
    • Klasse zum Zeichenweisen Schreiben

In jedem Programm sind folgende Byte-Stream Objekte in der Klasse System vordefiniert:

public static final InputStream in; // Standard Eingabe Objekt
public static final PrintStream out; // Standard Ausgage Objekt
public static final PrintStream err; // Standard Fehlerausgabe Objekt

Lesen von der Standard-Eingabe

Stream-Objekt: System.in

  1. Methode zum Einlesen ist read()
  2. Liest einzelne Bytes oder ein Feld von Bytes.

Im Programm arbeitet man mit Unicode, deshalb wäre ein Unicode Render Objekt besser zum Einlesen. Dies liefert die Input-Stream-Reader Klasse.

Mit read() können nur einzelne Zeichen gelesen werden, schöner wäre es, wenn man eine ganze Zeile einlesen könnte. Dies bietet die Klasse BufferedReader mit der Methode readLine()

Außerdem müssen IOExceptions behandelt werden.

Beispiel:

import java.io.*;
class EchoLine(){
    public static void main(String[] args){
        BufferedReader br = null;
        try{
            br = new BufferedReader(
                new InputStreamReader(System.in));
            String Line;
            while((Line == br.readLine()) != null){
                System.out.println(Line);
            }
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }
    }
}

Daten in Java speichern

Zum Speichern von Texten benutzt man writer Klassen. Diese bieten die Methoden:

public void close() // Zum Schließen
public void flush() // Explizites Schreiben
public void write(String str) // Zum Speichern 

Der Konstruktor öffnet einen Ausgabestrom der mit "write" beschrieben und mit "close" geschlossen werden kann. Zum schreiben in eine Datei nutzt man die Klasse FileWriter. Bsp:

import java.io.*;
class Schreiben(){
    public static void main(String[] args){
        String hello = "Hallo Java \n \r";
        FileWriter f = null;
        try{
            f = new FileWriter("Hallo.txt");
            f.Write(hello);
        } catch (Exception ex){
            System.out.println(ex.getMessage());
        } finally {
            if(f != null){
                try {
                    f.close();
                } catch (IOException ex){
                    System.out.println(ex.getMessage());
                } 
            }
        }
    }
}