M
MacSebastian
Gast
Hallo, ich habe folgendes Problem:
Ich soll in eine Java-Klasse einen String aus einer Textdatei einlesen. Dann sollen Schlüsselwörter, die mit den Identifiern %word% gekennzeichnet sind, gegen in einem Array gespeicherte Namen getauscht werden. Schließlich soll die Datei unter dem NAmen gespeichert werden, der im text ersetzt wurde. Mein Code wird übersetzt, ohne Syntaxfehler. Nur bekomme ich beim ausführen der Methoden die Meldung "Leeres Parameterfeld". Wo liegt mein Fehler ? Arbeite mit BlueJ. Bitte um Hilf. Hier mein Code:
Ich soll in eine Java-Klasse einen String aus einer Textdatei einlesen. Dann sollen Schlüsselwörter, die mit den Identifiern %word% gekennzeichnet sind, gegen in einem Array gespeicherte Namen getauscht werden. Schließlich soll die Datei unter dem NAmen gespeichert werden, der im text ersetzt wurde. Mein Code wird übersetzt, ohne Syntaxfehler. Nur bekomme ich beim ausführen der Methoden die Meldung "Leeres Parameterfeld". Wo liegt mein Fehler ? Arbeite mit BlueJ. Bitte um Hilf. Hier mein Code:
Code:
import java.io.File;
import java.io.IOException;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.util.Date;
import java.text.DateFormat;
/**
* Gefragt ist nach einer Klasse, die aus einer besteneden Datei Serienbrief.txt
* alle Zeichen ausliest, diese in einn temporären Speicherplatz schreibt, dann mit % gekennzeichnete
* Schlüsselbegriffe findet, und diese durch in einem String gespeicherte Namen ersetzt. Dann soll die
* Datei unter dem Namen, der ausgewechselt wurde, mit der Endung txt gespeichert werden.
*/
public class SB {
/**
* Festlegung der Variablen der Klasse und des Strings zur Speicherung der Namen
*/
public static String[] namen={"Spock","Kirk","McCoy","Uhura","Tschechov"};
public static String sb;
public static File newFile;
/**
* Hier soll der String aus der Datei Serienbrioef ausgelesen werden
* und in die Variable sb zwischengespeichert werden.
*/
public static String readFileContent (File newFile) {
StringBuilder sb = new StringBuilder();
try {
FileReader reader = new FileReader(newFile);
int character;
while ((character=reader.read()) >-1) {
sb.append((char) character);
}
reader.close();
} catch(FileNotFoundException fnfe) {
fnfe.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}
return sb.toString();
}
/** Nunn sollen die im mit Identifier gekennzeichneten Worte ausgelesen
* und gegen die Namen ausgetauscht werden.
*/
public static void ersetze() {
String datum = DateFormat.getDateInstance().format(new Date());
sb = sb.replaceAll("ÚTUM%", datum);
for (String name : namen) {
sb = sb.replaceAll("%NAME%", name);
}
System.out.println(sb);
}
/**
* Der veränderte String soll in eine Datei gespeichert werden, die den Namen des
* angeschriebenen aus dem String enthält.
*/
public static void main(String ... args) throws IOException {
for (String name : namen) {
File newFile = new File(name + ".txt");
}
newFile.createNewFile();
FileWriter writer = new FileWriter(newFile);
writer.write(sb);
writer.flush();
writer.close();
}
}