Hallo Leute,
ich habe eine Aufgabe zu lösen. Ich habe sie fertiggemacht, aber ich weiß nicht, ob das jetzt richtig ist. Kann mir jemand weiterhelfen?
Aufgabe: Wir haben als Datenquelle eine xml- Datei, die eine Zitatsammlung enthält. Wir möchten mit Hilfe der .xml- Datei, eine Datei mit Zitaten erstellen, die jedes Zitat in Anführungszeichen gefolgt von dem Namen der Person und der Beschreibung in einer neuen Zeile enthält.
Die allgemeinen Ein- und Ausgabeströme sind System.out für die Standardausgabe, System.in für die Standardeingabe, die Tastatur und System.err für Fehlermeldungen.
System.err hängt vom Rechner und Betriebssystem ab und ist meistens auch der Bildschirm, kann aber auf einen Drucker oder in eine Log-Datei umgeleitet sein.
in, err und out sind Attribute der Klasse System und vom Typ InputStream bzw. PrintStream.
Zum Lesen und Schreiben einer Datei kann man kein Systemdatenstrom benutzen, sondern sich einen Datenstrom definieren.
Zeile für Zeile aus der Datei einlesen, nach den Tags suchen und extrahieren den Inhalt aus dieser Zeile. Dazu kann man eine Methode codieren, der man die Zeile und den Namen des Tags übergeben. Diese gibt dann den Substring aus der Zeile zurück.
Zuweisen einer Variablen "name", einer Variablen "beschreibung" und einer Variablen "zitat".
Die Methode readLine() erzeugt IOExceptions. Fange diese ab und gebe ggf. eine Fehlermeldung aus.
[JAVA=42]import java.io.*;
class Versuch7{
public static void main(String args[]){
try {
BufferedReader buffRead = new BufferedReader(new FileReader("gesamt.xml"));
PrintWriter printWrit = new PrintWriter(new FileWriter ("Daten.txt"));
String name=null;
String beschreibung=null;
String zitat=null;
String zeile=null;
while((zeile = buffRead.readLine()) != null) {
if(zeile.contains("<zitat>")) {
zitat=zeile.substring(11,(zeile.length()-8));
printWrit.println("\""+zitat+"\"");
printWrit.println(name+", "+beschreibung);
printWrit.println();
}
if(zeile.contains("<name>")) {
name=zeile.substring(10,(zeile.length()-7));
}
if(zeile.contains("<beschreibung>")) {
beschreibung=zeile.substring(18,(zeile.length()-15));
}
}
printWrit.close();
buffRead.close();
}
catch (IOException e){
System.out.println("Fehler beim Einlesen der Datei!");
}
}
}
[/code]
ich habe eine Aufgabe zu lösen. Ich habe sie fertiggemacht, aber ich weiß nicht, ob das jetzt richtig ist. Kann mir jemand weiterhelfen?
Aufgabe: Wir haben als Datenquelle eine xml- Datei, die eine Zitatsammlung enthält. Wir möchten mit Hilfe der .xml- Datei, eine Datei mit Zitaten erstellen, die jedes Zitat in Anführungszeichen gefolgt von dem Namen der Person und der Beschreibung in einer neuen Zeile enthält.
Die allgemeinen Ein- und Ausgabeströme sind System.out für die Standardausgabe, System.in für die Standardeingabe, die Tastatur und System.err für Fehlermeldungen.
System.err hängt vom Rechner und Betriebssystem ab und ist meistens auch der Bildschirm, kann aber auf einen Drucker oder in eine Log-Datei umgeleitet sein.
in, err und out sind Attribute der Klasse System und vom Typ InputStream bzw. PrintStream.
Zum Lesen und Schreiben einer Datei kann man kein Systemdatenstrom benutzen, sondern sich einen Datenstrom definieren.
Zeile für Zeile aus der Datei einlesen, nach den Tags suchen und extrahieren den Inhalt aus dieser Zeile. Dazu kann man eine Methode codieren, der man die Zeile und den Namen des Tags übergeben. Diese gibt dann den Substring aus der Zeile zurück.
Zuweisen einer Variablen "name", einer Variablen "beschreibung" und einer Variablen "zitat".
Die Methode readLine() erzeugt IOExceptions. Fange diese ab und gebe ggf. eine Fehlermeldung aus.
[JAVA=42]import java.io.*;
class Versuch7{
public static void main(String args[]){
try {
BufferedReader buffRead = new BufferedReader(new FileReader("gesamt.xml"));
PrintWriter printWrit = new PrintWriter(new FileWriter ("Daten.txt"));
String name=null;
String beschreibung=null;
String zitat=null;
String zeile=null;
while((zeile = buffRead.readLine()) != null) {
if(zeile.contains("<zitat>")) {
zitat=zeile.substring(11,(zeile.length()-8));
printWrit.println("\""+zitat+"\"");
printWrit.println(name+", "+beschreibung);
printWrit.println();
}
if(zeile.contains("<name>")) {
name=zeile.substring(10,(zeile.length()-7));
}
if(zeile.contains("<beschreibung>")) {
beschreibung=zeile.substring(18,(zeile.length()-15));
}
}
printWrit.close();
buffRead.close();
}
catch (IOException e){
System.out.println("Fehler beim Einlesen der Datei!");
}
}
}
[/code]
Zuletzt bearbeitet: