Input/Output Datenbank

KingOfExceptions

Bekanntes Mitglied
Hey leute,

ich hab angefangen eine datenbank zu schreiben , bei der man eine nummer, ein stichwort und ein bildverzeichnis angeben kann. dann werden diese drei sachen in einem vector abgespeichert und dann kann man danach entweder mithilfe der nummer oder mithilfe des stichworts nach dem objekt suchen und dann wird mithilfe des verzeichnisses das bild angezeigt. soweit kein problem. ich möchte aber dass man auch nach schließen und neuöffnen die alten nummern, stichwörter und verzeichnisse der bilder hat. dazu hab ich einen buffered writer gemacht, der die einzelnen sachen mit einem / abspeichert.

Java:
public void abspeichern()
	{
		int ö=0;
		try
		{
			BufferedWriter writer=new BufferedWriter(new FileWriter("Speicherung"));
			
			if(zdhs!=0)
			{
				for(;ö<(zdhs*3);ö++)
				{
					writer.write(heft.elementAt(ö));
					writer.write("/");
					
				}
			}
			
			writer.close();
		}
		
		catch(IOException exception)
		{
			JOptionPane.showMessageDialog(null, "Es ist ein Fehler beim Speichern aufgetreten." );
		}
	}

dann möchte ich dass ich beim öffnen diese sachen in einen vector stecken kann:
Java:
public void laden()
	{
		
		try
		{
			BufferedReader reader=new BufferedReader(new FileReader("Speicherung"));
			
			String zeile=reader.readLine();
			
			while(zeile!=null)
			{
				 String[] values=zeile.split("/");
				
				for(int i=0;i<values.length;i++)
				{
					heft.add(Integer.parseInt(values[i]), zeile);
				}
			}
			reader.close();
		}
		
		catch(IOException exceptio)
		{
			JOptionPane.showMessageDialog(null, "Es ist ein Fehler beim Laden aufgetreten." );
		}
	}

jedoch bekomme ich folgende komische fehlermeldung:

Java:
java.lang.ExceptionInInitializerError
Caused by: java.lang.ArrayIndexOutOfBoundsException: 123 > 0
	at java.util.Vector.insertElementAt(Unknown Source)
	at java.util.Vector.add(Unknown Source)
	at OldDaten.laden(OldDaten.java:131)
	at OldDaten.<init>(OldDaten.java:55)
	at OldDaten.<clinit>(OldDaten.java:15)
Exception in thread "main"

damit kann ich nichts anfangen . hier (bei bedürfnis) die zeilen 131 55 und 15

Java:
heft.add(Integer.parseInt(values[i]), zeile);
zeile 131

Java:
laden();
zeile 55

Java:
static OldDaten frm=new OldDaten("Die Oldtimer Datenbank");
zeile 15

kann mir da jemand helfen? ???:L
 

KingOfExceptions

Bekanntes Mitglied
@ ARadauer: ich hatte so viele variablen, da wollte ich mir einfach sicher sein, dass es die noch nicht gibt ;)

Java:
Vector <String> heft=new Vector <String>(50,5);

Java:
heft.addElement(shgseriennummer);
heft.addElement(shgschlagwörter);
heft.addElement(geingabe);
zdhs++;
JOptionPane.showMessageDialog(null,"Das Heft wurde zur Datenbank hinzugefügt.");
 

KingOfExceptions

Bekanntes Mitglied
ach hier ist die main wenn sie jemand braucht:
Java:
public static void main(String[]args)
	{
		
		frm.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		frm.setSize( 680, 680);
		frm.setResizable(false);
		frm.setLocation(100,10);
		frm.setVisible( true );
		
		
	}
 
N

nillehammer

Gast
Du gibtst bei der add-Methode einen Index mit, den es noch garnicht gibt. Bei einem leeren Vector gibt es nur den Index 0. Ich glaube, Vector ist hier auch nicht die richtige Klasse. Für Deinen Anwendungsfall wäre Map wohl besser geeignet.

Ach ja, und benutze niemals Umlaute für Variablennamen.
 
Zuletzt bearbeitet von einem Moderator:

KingOfExceptions

Bekanntes Mitglied
ja ich wollts aber nicht drauf ankommen lassen und was ist mit dem intialisierungsteil der for schleife? dass da ein ; am anfang stehen muss kommt mir immer komisch vor aber eclipse will es so ;)
 

nrg

Top Contributor
zwischen der offenen Klammer und dem Semikolon kommt die Variable, die du in Zeile 3 deklarierst ;). dadurch ist sie auch nur im header und body der for-schleife gültig.

Java:
                for(int i = 0; i < zdhs*3; i++)
                {
                    writer.write(heft.elementAt(i));
                    writer.write("/");
                    
                }
 
N

nillehammer

Gast
ja ich wollts aber nicht drauf ankommen lassen und was ist mit dem intialisierungsteil der for schleife? dass da ein ; am anfang stehen muss kommt mir immer komisch vor aber eclipse will es so
Was bei der For-Schleife in den Klammern steht:
1. Initialisierung einer Variablen (also initial einen Wert zuweisen), ggf. sogar inkl. Deklaration (also die Variable überhaupt erst definieren)
2. Bedingung
3. Aktion
Da Du die Variable außerhalb deklarierst und initialisierst, lässt Du den Teil 1. leer. Der leere Teil 1. wird durch die leere Anweisung ";" gekennzeichnet. Das int ö=3 schreibst Du am besten in die Klammern nach dem for rein.
 

KingOfExceptions

Bekanntes Mitglied
Was bei der For-Schleife in den Klammern steht:
1. Initialisierung einer Variablen (also initial einen Wert zuweisen), ggf. sogar inkl. Deklaration (also die Variable überhaupt erst definieren)
2. Bedingung
3. Aktion
Da Du die Variable außerhalb deklarierst und initialisierst, lässt Du den Teil 1. leer. Der leere Teil 1. wird durch die leere Anweisung ";" gekennzeichnet. Das int ö=3 schreibst Du am besten in die Klammern nach dem for rein.

hab ich geändert :)
 
N

nillehammer

Gast
Ach und was ich auch grad noch sehe, Du rufst ja nur ein einziges Mal readLine auf. Hat Deine Datei nur eine einzige Zeile? Falls nicht, auch das gehört dann in eine Schleife.
 
N

nillehammer

Gast
[Java]
heft.add(Integer.parseInt(values), zeile);
[/Java]
Hier parst Du offensichtilch mehrmals Werte zu int. Damit rufst Du dann die Methode add(int, String) auf. Das int bedeutet den Index (also die Position) im Vector, die Du gerne setzen möchtest. Bei einem leeren Vector gibt es z.b. die Position 123 nicht. Die gibt es erst bei einem Vector, der mindestens 124 Elemente enthält.
 
N

nillehammer

Gast
ach so ok! und wie kann ich das so ändern dass er einfach nur jede eingelesene datei einfach im vector abspeichert?
Hä? Wieso jetzt jede einzelne Datei? Hast Du etwa mehrere? In Deinem Code liest Du jedenfalls nur eine Datei ein und davon auch nur die erste Zeile.
 

KingOfExceptions

Bekanntes Mitglied
sagen wir mal so: ich hab eine datei in der viele sachen mit einem / getrennt drin stehen. wie kann ich sagen dass der computer JEDE zeile auslesen soll und dann die sachen zwischen den / dem vector heft hinzufügt? einfach nacheinander? zb:

0123/JAVA/toll/
-> heft.elementAt(0) = 0123
-> heft.elementAt(1)= JAVA
-> heft.elementAt(2)=toll
-> usw.
 
N

nillehammer

Gast
Ich habe mir Deinen Code nochmal angesehen und versuche mal zu beschreiben, was er macht. Ob es das ist, was Du willst?

Methode Abspeichern:
- Du hast eine Menge Strings (was da drinen steht kann man nicht erkennen)
- Diese gehst Du durch und speicherst sie in einer einzigen Zeile einer Datei. Dabei trennst Du mit "/"

Methode Laden:
- Deine Datei hat nur eine Zeile. Insofern ist der einmalige Aufruf von readLine() in Ordnung.
- Das Ergebnis von readLine() ist ein ziemlich langer String.
- Den splittest Du mit "/" in ein Array von Einzelstrings auf.

Was im Code überhaupt nicht ersichtlich ist:
Wo kommen da jetzt Nummer, Beschreibung und Bildverzeichnis her?
Was ist mit Objekt gemeint? Und wo kommt das her?
 

KingOfExceptions

Bekanntes Mitglied
ok für das laden:

ich habe drei strings: einer steht für eine seriennummer(soll in string sein), einer für ein stichwort, und einer für ein bildverzeichnis. was ich damit mache ist eig. egal. ;)

diese sachen sollen beim schließen des programms in eine datei gemacht werden und dann mit / abgetrennt werden. (klappt auch)

beim öffnen sollen diese dateien getrennt werden(die sachen zwischen den / ) und sollen einem vector (heft) hinzugefügt werden.

ich hoffe das ist einigermaßen verständlich :oops:
 

Sunchezz

Bekanntes Mitglied
Java:
while ((String s = r.readLine()) != null) {
  vector.add(s);
}

damit hast du alle ZEILEN in einem Vector.

Der Reader liest bei jedem Aufruf von "readLine()" immer automatisch die nächste Zeile in der Datei.
Bedingt durch die Abfragedefinition hört er aber auf, wenn in dem gelesenen String "nichts" mehr enthalten ist.


Edit:
mal wieder die Seitenanzahl des Threads ignoriert -.-
Post einfach ignorieren bitte!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
I Element n aus Datenbank Query (JPA / Hibernate) Java Basics - Anfänger-Themen 3
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
E schneller von der Datenbank abfragen Java Basics - Anfänger-Themen 15
E Datenbank Spalte zusammenzählen Java Basics - Anfänger-Themen 2
R Datenbank Java Basics - Anfänger-Themen 1
I API Key´s in der Datenbank decrypt / encrypten? Java Basics - Anfänger-Themen 23
I Werte (u.a. Geldbeträge) in Datenbank speichern und Rundungen? Java Basics - Anfänger-Themen 8
M Mehrere Datenbank zugriffe über tomee.xml regeln? Java Basics - Anfänger-Themen 1
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
S Datenbank Befehl nach Login Java Basics - Anfänger-Themen 5
S Datenbank Tabelle eine Zeile an einer bestimmten Stelle einfügen Java Basics - Anfänger-Themen 2
M Von der Datenbank zum Textfield Java Basics - Anfänger-Themen 16
R Best Practice Logik in der Datenbank oder in Java? Java Basics - Anfänger-Themen 3
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
B Datenbank: Entity mit vielen Referenzen? Ansatz so ok? Java Basics - Anfänger-Themen 8
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Datenbank verbindung Java Basics - Anfänger-Themen 19
J Java Verbindung mit mysql Datenbank Java Basics - Anfänger-Themen 3
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
T Collections Geeignete Collection/Liste/Datenbank Java Basics - Anfänger-Themen 17
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
R Input/Output Verbindung mit mySql-Datenbank Java Basics - Anfänger-Themen 9
D Compiler-Fehler Wert auf Datenbank übertragen und Sleep Thread Java Basics - Anfänger-Themen 3
N (Java) Regristrierung und Login System mit einer Datenbank Java Basics - Anfänger-Themen 5
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Verschiede Aktionen der Datenbank getrennt durchführen Java Basics - Anfänger-Themen 4
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
S Datenbank auf Knopfdruck abfragen Java Basics - Anfänger-Themen 8
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
N Datenbank mit GUI verbinden - Wie? Java Basics - Anfänger-Themen 5
1 Datenbank in Java Java Basics - Anfänger-Themen 1
M Erste Schritte Java Applet - HTML Seiten auslesen und in Access Datenbank schreiben? Java Basics - Anfänger-Themen 15
J Bücher Datenbank Java Basics - Anfänger-Themen 5
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
R Erstversuch Datenbank Java Basics - Anfänger-Themen 6
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
A Erste Schritte Verbindung zu MySQL Datenbank herstellen Java Basics - Anfänger-Themen 7
T Sql Datenbank - variable übergeben? Java Basics - Anfänger-Themen 8
C Passwörter möglichst sicher in Datenbank speichern Java Basics - Anfänger-Themen 18
W Erste Schritte Exceltabelle in Datenbank übertragen mittels XDEV Java Basics - Anfänger-Themen 7
J GUI mit phpMyAdmin Datenbank verbinden Java Basics - Anfänger-Themen 0
K Erste Schritte Datenbank SQL erklärung Java Basics - Anfänger-Themen 15
B Lokale Datenbank Java Java Basics - Anfänger-Themen 2
B Klassen Doppelte werte Filtern XML, Datenbank und DOM Java Basics - Anfänger-Themen 3
Todesbote Int Array mit Hibernate in Datenbank speichern. Java Basics - Anfänger-Themen 2
U Datenbank in Java Java Basics - Anfänger-Themen 8
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
N mit Werten aus einer mysql datenbank in java rechnen Java Basics - Anfänger-Themen 17
Q Datenbank nicht über separaten Server Java Basics - Anfänger-Themen 4
B Dateiname in Datenbank schreiben Java Basics - Anfänger-Themen 2
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
S ArrayList in mysql Datenbank speichern Java Basics - Anfänger-Themen 6
C Datenbank - Welche Java Basics - Anfänger-Themen 5
B Java Objektorientierte Datenbank - Assoziation Hilfe Java Basics - Anfänger-Themen 4
G Input/Output Serialisierung oder Datenbank Java Basics - Anfänger-Themen 6
J Erste Schritte Objekte in Datenbank speichern Java Basics - Anfänger-Themen 26
A Android Datenbank gaaanz einfaches Insert geht nicht - warum? Java Basics - Anfänger-Themen 4
L Erste Schritte Datenbank Zugangsdaten sicher? Java Basics - Anfänger-Themen 15
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
B Mit Java-Programm Daten aus MySQL-Datenbank auslesen, lokal und nicht lokal. Java Basics - Anfänger-Themen 10
M Datenbank in die Gui Java Basics - Anfänger-Themen 4
J JTable mit Daten aus Datenbank füllen Java Basics - Anfänger-Themen 3
F Erfassung von PCs in eine SQLite-Datenbank über JDBC Java Basics - Anfänger-Themen 9
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
M Brauche ich ein Datenbank oder nicht? Java Basics - Anfänger-Themen 6
D JDBC Datenbank fail?! Java Basics - Anfänger-Themen 20
A Problem beim einfügen in eine Datenbank Java Basics - Anfänger-Themen 2
F Classpath Datenbank ... nur wo? Java Basics - Anfänger-Themen 24
H Datenbank suche in kleine Schritte Java Basics - Anfänger-Themen 6
B Personalnummer aus Datenbank Java Basics - Anfänger-Themen 3
M Welche Datenbank? Java Basics - Anfänger-Themen 5
J RadioButtonInhalt in Datenbank übergeben Java Basics - Anfänger-Themen 3
R Datenbank bei Klassenverteilung führt zu NullPointerException Java Basics - Anfänger-Themen 7
J PW von Datenbank wie abspeichern? Java Basics - Anfänger-Themen 2
F Verbindung zu MySql Datenbank Java Basics - Anfänger-Themen 4
MU5T4NG JPasswordField als Hash in Datenbank abspeichern Java Basics - Anfänger-Themen 3
J Kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
J Eigene kleine Datenbank programmieren Java Basics - Anfänger-Themen 2
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
T Zugangsdaten für Datenbank in Java-Programm speichern? Java Basics - Anfänger-Themen 5
S Schnittstelle für Datenbank bzw. Dateiformat Java Basics - Anfänger-Themen 2
C ComboBoxModel mit Daten der Datenbank verändern Java Basics - Anfänger-Themen 2
T Datenbank automatisch erzeugen beim ersten Start Java Basics - Anfänger-Themen 6
I Datenbank - nach erster Verbindung keine Verbindung mehr Java Basics - Anfänger-Themen 3
F Datenbank in eine Textdatei speichern Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben