File lesen

Shin_Sello

Mitglied
Hey Leute ^^

Ich hab nen neuen Thread aufgemacht(weil eRaaaa mir dazu geraten hat) indem ich eure Hilfe beanspruche.

Also, mein Problem ist wie folgt:

Ich habe eine Datenbank mit ArrayList erstellt. Die Datenbank arbeitet mit Vererbung und ich habe eine Super Klasse Fahrzeug und die davon erbenden Klasse Auot, Motorrad und LKW. Außerdem habe ich ein Konsolenmenü gemacht, da ich das KM ziemlihc praktisch finde.

Methoden die ich erledigt habe sind:
addFahrzeug(fügt ein Auot/Motorrad(LKW Objekt meiner DB hinzu)
TestFahrzeuge(erstellt 5 Testfahrzeuge)
gibausDB(gibt die komplette DB aus)
gibausAnzahl(gibt die Anzahl der Objekte in der DB aus)
loesche Index(löscht ein Objekt mit dem entsprechenden eingegebenen Index)
IndexAusgabe(Gibt aus welches Objekt auf dem eingegebenen Index gespeichert ist)
Filespeichern(speichert die DB in eine Textfile)

Was ich noch machen will, ist:
FileLesen
Verschlüsselung

Grade bin ich dabei das FileLesen zu machen und heirbei habe ich ein Problem...

Ich kenn mich nicht besonders mit dem Tokenizer aus und es fällt mir daher schwer herauszufinden, wie ich den eingelesenen Text in ein FahrzeugObject umwandle...

Hier ist einmal der Code meines FileLesen(was eben momentan fertig ist):

Java:
public static void FileLesen() throws FileNotFoundException, IOException {
		try {
			BufferedReader in = new BufferedReader(new FileReader(
					".\\output\\DatenbankFile.txt"));
			boolean istDa = true;
			while (istDa) {
				String s = in.readLine();
				if (s != null) {
					s += in.readLine();
					StringTokenizer st = new StringTokenizer(s);
				     while (st.hasMoreTokens()) {
				         System.out.println(st.nextToken());
				     }

				} else {
					istDa = false;
					in.readLine();
				}
			}
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

Ich hoffe das mit jemand helfen kann ^^

MfG Shin
 
Zuletzt bearbeitet von einem Moderator:

Shin_Sello

Mitglied
In meiner Textdatei hab ich ein Beispiel Fahrzeug hinzugefügt und gespeichert, dain steht:
Art des Fahrzeugs: Auto, Hersteller: BMW, Leistung: 100, Maximale Km/h: 10, Anzahl der Reifen: 1, Türen: 2

MfG Shin
 

ARadauer

Top Contributor
schau dir mal mein Beispiel an...
einfaches Objekt
Java:
public class Kunde {
   
  private String vorname;
  private String name;
  private String adresse;
  
   public String getVorname() {
      return vorname;
   }
   public void setVorname(String vorname) {
      this.vorname = vorname;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public String getAdresse() {
      return adresse;
   }
   public void setAdresse(String adresse) {
      this.adresse = adresse;
   }
}
und hier eine kleine Klase zum Lesen und SChreiben mit Testmethode

Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;


public class KundenDao {
   
   public ArrayList<Kunde> readKunden(File file) throws IOException{
      BufferedReader reader = new BufferedReader(new FileReader(file));
      
      ArrayList<Kunde> result = new ArrayList<Kunde>();
      String line = null;
      while((line = reader.readLine()) != null){      
         String[] parts = line.split(",");
         Kunde kunde = new Kunde();
         kunde.setName(parts[0]);
         kunde.setVorname(parts[1]);
         kunde.setAdresse(parts[2]);
         
         result.add(kunde);
      }
      reader.close();
      return result;      
   }
   
   public void writeKunden(ArrayList<Kunde> kunden, File file) throws IOException{
      if(!file.exists())
         file.createNewFile();
      
      BufferedWriter writer = new BufferedWriter(new FileWriter(file));
         
      for(Kunde kunde: kunden){
         StringBuilder buf = new StringBuilder();
         buf.append(kunde.getName()).append(",")
         .append(kunde.getVorname()).append(",")
         .append(kunde.getAdresse()).append(",").append(System.getProperty("line.separator"));       
         writer.write(buf.toString());
         writer.flush();
      }
      writer.close();
      
   }
   
   //zum testen
   public static void main(String[] args) throws IOException {
      
      ArrayList<Kunde> kunden = new ArrayList<Kunde>();
      
      Kunde a = new Kunde();
      a.setVorname("Hans");
      a.setName("Maier");
      a.setAdresse("asdf");
      kunden.add(a);
      
      Kunde b = new Kunde();
      b.setVorname("Andreas");
      b.setName("Huber");
      b.setAdresse("asdf123");
      kunden.add(b);
      
      KundenDao dao = new KundenDao();
      dao.writeKunden(kunden, new File("c:/kunden.txt"));
      
      ArrayList<Kunde> geleseneKunden = dao.readKunden(new File("c:/kunden.txt"));
      for(Kunde k: geleseneKunden){
         System.out.println(k.getName()+" "+k.getVorname()+" "+k.getAdresse());
      }
      
      
   }

}

Das könnte man natürlich noch um einiges Verbessern, Exception Handling usw..

Aber im Prinzipt machst du für jede gelesene Zeile ein line.split(","); und weeßt dann die einzelen Teile des array den eigenschaften eines neuen Objektes zu...
 

Shin_Sello

Mitglied
Ähm... Ich will ehrlich sein...
Ich verstehe deinen Code nicht o_O
Die Klasse Kunden ist ja leicht xD

Aber die zweite Klasse, da versteh ich dein Speichern und lesen nicht, es schaut so ganz anders aus als bei mir...

Mein Speichern:
Java:
public static void fileSpeichern() {
		File datei = new File(".\\output\\DatenbankFile.txt");
		FileWriter meinFW;
		try {
			meinFW = new FileWriter(datei);
			BufferedWriter writer = new BufferedWriter(meinFW);
			for (int i = 0; i < Fahrzeugliste.size(); i++) {
				if (Fahrzeugliste.get(i) != null) {
					writer.write(Fahrzeugliste.get(i).toString());
					writer.newLine();
				}
			}
			writer.close();
			System.out.println("Das File wurde erfolgreich gespeichert.");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

Mein momentanes Lesen:
Java:
public static void FileLesen() throws FileNotFoundException, IOException {
		try {
			BufferedReader in = new BufferedReader(new FileReader(
					".\\output\\DatenbankFile.txt"));
			boolean istDa = true;
			while (istDa) {
				String s = in.readLine();
				if (s != null) {
					s += in.readLine();
					StringTokenizer st = new StringTokenizer(s);
				     while (st.hasMoreTokens()) {
				         System.out.println(st.nextToken());
				     }

				} else {
					istDa = false;
					in.readLine();
				}
			}
			in.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

MfG Shin
 

fastjack

Top Contributor
Warum willst Du unbedingt Text speichern, Du kannst das alles viel leichter machen, indem Du serialisiert.

[edit]Oder nimm eine XML-API dafür und schreib/lies XML durch die fertige API.[/edit]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Oracle DB-Connection in .jar file ändern Datenbankprogrammierung 11
T The database file is locked Datenbankprogrammierung 2
Trèfle Adobe Acrobat Indexdatei (.PDX File) einlesen Datenbankprogrammierung 1
Dimax MySQL LOAD DATA INFILE -id aus dem Code und Rest aus dem File. Datenbankprogrammierung 5
E Warum kann mein SQL-File nicht in DB2 ausgeführt werden? Datenbankprogrammierung 1
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
S CSV File in Datenbank speichern!? Datenbankprogrammierung 1
Y DB File Synchronisation Datenbankprogrammierung 6
G PostgreSQL jar-file läd db-treiber nicht Datenbankprogrammierung 6
C XML file zu groß Datenbankprogrammierung 2
F Input txt File Datenbankprogrammierung 5
J Jar File erstellen Datenbankprogrammierung 8
D CSV File als Datenbank verwenden (JDBC) Datenbankprogrammierung 4
E Dringend Hilfe Firebird/Jaybird verbindet nicht; im jar file Datenbankprogrammierung 4
A Zugriff auf Remote MySQL-DB mit JAR-File Datenbankprogrammierung 7
A Probleme mit Jar-File in ein Jar-File Datenbankprogrammierung 8
B JDBC txt File keine Row ID Datenbankprogrammierung 4
V mdb-file erstellen? Datenbankprogrammierung 20
M java.sql.SQLException: Unable to open file Datenbankprogrammierung 2
E Jar File: NoClassDefFoundError: oracle/sql/ORAData Datenbankprogrammierung 2
G File nach Blob konvertieren ? Datenbankprogrammierung 6
P jar-File auswählen und Verbindung herstellen Datenbankprogrammierung 5
G How to put SQL query result into a file Datenbankprogrammierung 3
H File into blob Datenbankprogrammierung 3
O mit Multi-Thread Daten aus Datenbank lesen und schreiben Datenbankprogrammierung 22
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
D HSQLDB Aus einzelner Zelle lesen? Datenbankprogrammierung 3
D Komplette Zeile lesen und einem Konstruktor übergeben. Datenbankprogrammierung 3
P MySQL jpmdbc: Kann lesen aber nicht schreiben? Datenbankprogrammierung 3
J MySQL Lesen und schreiben von großen Datenmengen Datenbankprogrammierung 5
D Grants lesen Datenbankprogrammierung 3
0 Alle Tabellen aus DB lesen Datenbankprogrammierung 2
F ORA 17410 Keine weiteren Daten aus Socket zu lesen Datenbankprogrammierung 2
T ResultSet befehl für leere Spalte nicht lesen Datenbankprogrammierung 4
W MySQL Daten aus bestimmter Spalte lesen Datenbankprogrammierung 2
M FindBugs und PreparedStatement aus einer Datei lesen Datenbankprogrammierung 11
P Daten aus MySql Datenbank lesen??? Datenbankprogrammierung 6
H Wie kann ich eine Datenbank Connection aus XML-Datei lesen! Datenbankprogrammierung 2
S Matrix vom Typ Double aus .txt lesen und in ein Array speich Datenbankprogrammierung 3
G beim lesen der db alte daten bekommen? Datenbankprogrammierung 5
G Int aus MySQL-Tabelle lesen? Datenbankprogrammierung 5
thE_29 Vor dem ersten Posten bitte lesen! Datenbankprogrammierung 0
jehof Char/Varchar aus MySQL lesen und zurückschreiben Datenbankprogrammierung 3
L ImageIcon in/aus Datenbank speichern/lesen Datenbankprogrammierung 4
G Rundungsfehler beim Lesen von Fliesskommazahlen... Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben