Hallo Javagemeinde,
ich habe mich mit dem Thema Dateien auslesen uns mit StringTokenizer aufteilen beschäftigt. Leider ist meine Inputdatei nicht so toll aufbereitet, wie ich es mir wünschen würde (Auszug aus Termine.txt):
"AAA" " xxx" "04.04.2005" "ganztägig" "" "" "" "FALSE" "" "" "08:00" "17:00"
"BBB, ccc" " xxx" "05.04.2005" "ganztägig" "" "" "" "FALSE" "" "" "08:00" "17:00"
"DDDdddeee" " xxx" "06.04.2005" "ganztägig" "" "" "" "FALSE" "" "" "08:00" "17:00"
Was möchte ich tun:
1. Einlesen der Datei
2. Aufteilen immer bei \t
2a. Problem wenn kein Wert vorhanden ist , also bei ""
2b. Nach "FALSE" ist das nächste Feld leider nicht mit \t abgreifbar!
3. in einen Vector speichern
Mein großes Problem ist das aufbereiten des Satzes und das überführen in den Vector. Ferner habe ich ziemlich umständlich den Vector terminDaten.add ... gefüllt.
Über einen Tipp würde ich mich freuen.
So habe ich es programmiert:
ich habe mich mit dem Thema Dateien auslesen uns mit StringTokenizer aufteilen beschäftigt. Leider ist meine Inputdatei nicht so toll aufbereitet, wie ich es mir wünschen würde (Auszug aus Termine.txt):
"AAA" " xxx" "04.04.2005" "ganztägig" "" "" "" "FALSE" "" "" "08:00" "17:00"
"BBB, ccc" " xxx" "05.04.2005" "ganztägig" "" "" "" "FALSE" "" "" "08:00" "17:00"
"DDDdddeee" " xxx" "06.04.2005" "ganztägig" "" "" "" "FALSE" "" "" "08:00" "17:00"
Was möchte ich tun:
1. Einlesen der Datei
2. Aufteilen immer bei \t
2a. Problem wenn kein Wert vorhanden ist , also bei ""
2b. Nach "FALSE" ist das nächste Feld leider nicht mit \t abgreifbar!
3. in einen Vector speichern
Mein großes Problem ist das aufbereiten des Satzes und das überführen in den Vector. Ferner habe ich ziemlich umständlich den Vector terminDaten.add ... gefüllt.
Über einen Tipp würde ich mich freuen.
So habe ich es programmiert:
Code:
import java.io.*;
import java.util.*;
public class TestLoadFile {
private Vector terminDaten;
public Vector getLoadFile() {
try {
FileReader file = new FileReader("Termine.txt");
BufferedReader buff = new BufferedReader(file);
boolean eof = false;
int count = 0;
while(!eof) {
String line = buff.readLine();
System.out.println(line);
if (line == null)
eof = true;
else {
StringTokenizer tokenizer = new StringTokenizer( line, "\t" );
int size = tokenizer.countTokens();
String[] array = new String[size];
int index = 0;
while( index < size ) {
array[index] = tokenizer.nextToken();
index++;
}
terminDaten.add(new TermineDatenClass( array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11]));
}
}
buff.close();
}
catch (IOException e){
System.out.println("Error-- " + e.toString());
}
return terminDaten;
}
}
class TermineDatenClass{
private String name;
private String text;
private String datum;
private String zeit;
private String fill1;
private String fill2;
private String fill3;
private String geloescht;
private String fill4;
private String fill5;
private String zeitvon;
private String zeitbis;
public TermineDatenClass(String n, String t, String d, String z, String f1, String f2, String f3, String g, String f4, String f5, String zv, String zb ) {
this.name = n;
this.text = t;
this.datum = d;
this.zeit = z;
this.fill1 = f1;
this.fill2 = f2;
this.fill3 = f3;
this.geloescht = g;
this.fill4 = f4;
this.fill5 = f5;
this.zeitvon = zv;
this.zeitbis = zb;
}
public String getName(){
return name;
}
public String getText(){
return text;
}
public String getDatum(){
return datum;
}
public String getZeit(){
return zeit;
}
public String getFill1(){
return fill1;
}
public String getFill2(){
return fill2;
}
public String getFill3(){
return fill3;
}
public String getGeloescht(){
return geloescht;
}
public String getFill4(){
return fill4;
}
public String getFill5(){
return fill5;
}
public String getZeitvon(){
return zeitvon;
}
public String getZeitbis(){
return zeitbis;
}
}
Code:
import java.util.*;
public class StartTestLoadFile {
Vector vecErg = new Vector();
public StartTestLoadFile() {
TestLoadFile tfload = new TestLoadFile();
vecErg = tfload.getLoadFile();
TermineDatenClass tDatClass = (TermineDatenClass)vecErg.iterator();
System.out.println(tDatClass.getName());
}
public static void main(String[] args) {
new StartTestLoadFile();
}
}