import java.io.IOException

Werbung
Tutorium Java I, Sitzung 12, 02.02.2009
Ein einfaches Beispiel für das Auslesen von der Konsole:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.util.Scanner;
public class IoSimple{
public static void main(String[] args) throws IOException{
System.out.println("Konsole : ");
int r;
Reader inputStreamReader = new InputStreamReader(System.in);
while ((r = inputStreamReader.read()) != -1) {
System.out.println((char) r);
}
//dieselbe Funtion kann auch z.B. ein Scanner übernehmen:
Scanner scanner = new Scanner(System.in);
String line;
while ((line = scanner.nextLine()) != null) {
System.out.println(line);
}
System.out.println("(N)eu erstellen oder Datei (Ö)ffnen");
}
}
Im folgenden einige Beispiele wie Reader verwendet werden können:
import
import
import
import
import
import
import
java.io.BufferedReader;
java.io.File;
java.io.FileNotFoundException;
java.io.IOException;
java.io.InputStreamReader;
java.io.Reader;
java.util.Scanner;
public class DivReaderWriter {
public void byteStream() throws IOException {
int r;
while ((r = System.in.read()) != -1) {
System.out.println((char) r);
}
}
public void reader() throws IOException {
int r;
Reader inputStreamReader = new InputStreamReader(System.in);
while ((r = inputStreamReader.read()) != -1) {
System.out.println((char) r);
}
}
public void scanner() {
// Die Klasse Scanner bietet seit Java 5 eine komfortable Variante,
// etwas aus Readern, InputStreams, Strings oder Files einzulesen:
Scanner scanner = new Scanner(System.in);
String line;
while ((line = scanner.nextLine()) != null) {
System.out.println(line);
}
// im Scanner gibts weitere nuetzliche Sachen, etwa Zahlen auslesen:
Integer number = scanner.nextInt();
// oder um zu pruefen, was drin ist:
Boolean hasDouble = scanner.hasNextDouble();
// und bietet auch Unterstuetzung fuer regulaere Ausdruecke:
Boolean hasLetters = scanner.hasNext("[a-zA-Z]+");
}
public void encoding() throws FileNotFoundException {
// Einem Scanner kann man (wie auch Readern) das Encoding einer
Datei
// angeben, das beim Einlesen verwendet werden soll:
Scanner scanner = new Scanner(new File("temp.txt"), "utf-8");
// Benutzung wie oben…
}
public void lineReader() throws IOException {
// Wenn wir zeilenweise einlesen, verwenden wir einen
// BufferedReader, der mit jedem Reader-Objekt erzeugt werden kann
BufferedReader bufferedReader = new BufferedReader(new
InputStreamReader(System.in));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
}
}
Ein weiteres Beispiel für Reader und Writer. Aufgrund der gewählten Option wird entweder eine Datei
gelesen oder neu erzeugt. Der FileWriter erstellt hier nur eine neue Datei, schreibt aber keinen Inhalt.
import
import
import
import
import
import
import
import
java.io.BufferedReader;
java.io.File;
java.io.FileNotFoundException;
java.io.FileWriter;
java.io.IOException;
java.io.InputStreamReader;
java.io.PrintWriter;
java.util.Scanner;
public class Io {
public static void main(String[] args) throws IOException{
System.out.println("(N)eu erstellen oder Datei (Ö)ffnen");
Scanner scanner = new Scanner(System.in);
String zeile = scanner.nextLine();
File newFile = new File("temp.txt");
File textFile = new File("text.txt");
if (zeile.equalsIgnoreCase("N")) {
try {
FileWriter writer = new FileWriter(newFile);
//ein FileWriter muss geschlossen werden
writer.close();
System.out.println("existiert newFile ? "+newFile);
} catch (IOException e) {
e.printStackTrace();
}
} else if (zeile.equalsIgnoreCase("Ö")) {
System.out.println("Wird gemacht...");
System.out.println();
scanner = new Scanner(textFile);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} else {
System.out.println("Falsche Eingabe: " + zeile);
}
}
}
Herunterladen