Beruflich Dokumente
Kultur Dokumente
Idee: Dateien oder auch andere Ressourcen werden als „Stromquellen bzw. –
senken“ abstrahiert:
Bildquelle: Oracle
Bildquelle: Nanyang
University Singapure
Bildquelle: Nanyang
University Singapure
Bildquelle: Nanyang
University Singapure
Bildquelle: Nanyang
University Singapure
Dateien bzw. Ressourcen müssen nach dem öffnen auch wieder geschlossen
werden.
Typisches Code-Pattern (vor Java 7):
FileInputStream in = null;
try {
in = new FileInputStream(...); // Öffnen des Streams
......
}
catch (IOException ex) {
ex.printStackTrace();
}
finally { // Stream immer schließen
try {
if (in != null) in.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
Java erlaubt es, dass Objekte (Instanzen) gespeichert bzw. wieder geladen
(restauriert) werden können.
Das „Speicherlayout“ wird als Byte-Array abgespeichert. Man spricht in
diesem Zusammenhang von Serialisation.
• Zugehörige Klasse muss das Interface Serializable implementieren
Der Mechanismus wird z.B. auch benötigt, um Java-Objekte über ein
Netzwerk zu versenden.
Mit dem JDK 7 wurde das Arbeiten mit Dateien grundlegend überarbeitet
und hierzu die Klasse java.nio.file.Files eingeführt.
In der „alten“ Klasse java.io.File ist das Konzept eines Dateisystems nur
unzureichend umgesetzt.
Mit dem JDK 1.7 wurde die Klasse Files (Package: java.nio.file) die
Path-Klasse eingeführt.
Bildquelle:
http://tutorials.jenkov.com
Tran / Hettel GDI 2 20
Beispiel: Kopierprogramm (1)
try
{
Path input = Paths.get("Faust1-UTF8.txt");
Path output = Paths.get("Faust1-out.txt");
try
{
Path input = Paths.get("Faust1-UTF8.txt");
Path output = Paths.get("Faust1-out.txt");
// Mit
// connection.addRequestProperty( key, value )
// können weitere Attribute gesetzt werden
...
// Get Response
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
StringBuilder response = new StringBuilder();
String line;
while ((line = rd.readLine()) != null)
{
response.append(line);
response.append(System.lineSeparator());
}
rd.close();
connection.disconnect();
System.out.println(response.toString());