viele Name mit jeweils zugehörigen Status in .txt Speichern

Status
Nicht offen für weitere Antworten.
O

olf

Gast
Problem: :?: Ein Benutzer soll bei Programmstart seinen Namen eingeben. Wenn der Namen schon früher einmal eingegeben wurde soll festgestellt werden, welchen Status (a-f bzw.1-6)) der Benutzer zuletzt hatte.
Diese Informationen würde ich gerne in eine .txt schreiben. In der Datei muss also der Name und der Status gespeichert werden. Hat jemand einen schlauen :idea: Vorschlag? da ich ein blutiger Anfänger bin, bitte nicht zu knapp texten.

Vielen Dank,
Olf
 

mic_checker

Top Contributor
Weisst du wie du allgemein in ne Datei schreibst und wieder draus liest?

Wie willst du nachher auf die einzelnen User zugreifen? Sollen weitere Informationen abgesehen von Status verfügbar sein ?
 

jagdfalke

Bekanntes Mitglied
Ich würde versuchen das ganze in diesem oder ähnlichem Format reinzuschreiben:
name1<~>status1
name2<~>status2
usw.

Dann kannst du mit dem BufferedReader die Textdatei Zeilenweise einlesen und mit der Methode split() der Klasse String den namen vom Status trennen. Dh du bekommt dann ein Array mit 2 Einträgen: name1 und status 1.

Aber willst du das wirklich mit einer .txt-Datei machen? Dann kann ja jeder seinen Status nach belieben ändern.

mfg
jagdfalke
 

byte

Top Contributor
würde die daten als xml datei speichern. du hast den vorteil, dass das ganze gut erweiterbar ist, falls du später doch mal mehr speichern willst, als die oben aufgeführten informationen. ausserdem ist die akzeptanz von xml recht hoch, was sich positiv auf die interoperabilität auswirkt.

so ungefähr:

Code:
<MeinRoot>
   <user status="3">Hans Meiser</user>
   <user status="a">Peter Mustermann</user>
   <user status="6">Uschi Schmidt</user>
</MeinRoot>
 

byte

Top Contributor
falls das ne anspielung sein soll:
der aufwand das ganze in xml zu speichern ist, gemessen in lines of code, nicht wirklich größer als der proprietäre datei io.
 

jagdfalke

Bekanntes Mitglied
Oh, nein! Nicht falsch verstehen!!! Das sollte keine Anspielung sein!
Ich habe nur als ich diesen Thread gelesen habe an DB gedacht, deshalb das Smilie dahinter.
btw: Wenn deine User ihren Status nicht manuell ändern können sollen, solltest du eine DB verwenden, oder das XML-File irgendwie verschlüsseln.
 

byte

Top Contributor
hm, solang es sich dabei nicht um eine clientsoftware handelt, die eh schon mit nem server kommuniziert, wäre eine datenbank doch denkbar ungünstig, weil der endbenutzer somit ne internetverbindung braucht, um sich zur datenbank zu verbinden.

da gibts doch viel einfachere möglichkeiten zu verhindern, dass die gespeicherten daten von aussen verändert werden können. man könnte die userdaten z.b. in nem objekt kapseln und per ObjectOutputStream in ne datei schreiben. diese datei wäre dann nicht "lesbar" fürs menschliche auge.
 

jagdfalke

Bekanntes Mitglied
Warum braucht man für HSQLDB eine Internetverbindung? Ich benutz diese DB einwandfrei ohne je eine Verbindung ins Internet herstellen zu müssen.
 

jagdfalke

Bekanntes Mitglied
HSQLDB ist ein in Java geschrieben Datenbank, die in mehreren Modes laufen kann: Standalone, Server, InMemory, usw.
Standalone = lokal => keine Verbindung zum Inet.
 
O

olf

Gast
Danke für die Massen von Tipps!
Ich werde mal ein rumprobieren, was ich hinbekomme.
Ich glaube, der Vorschlag von jagdfalke gefällt mir am besten.
Es kommt nicht darauf an, dass das nachher sicher vor Manipulationen ist, sondern das es funktioniert.
MfG, Olf
 

Bleiglanz

Gesperrter Benutzer
jagdfalke hat gesagt.:
Ich würde versuchen das ganze in diesem oder ähnlichem Format reinzuschreiben:
name1<~>status1
name2<~>status2
usw.

Dann kannst du mit dem BufferedReader die Textdatei Zeilenweise einlesen und mit der Methode split() der Klasse String den namen vom Status trennen. Dh du bekommt dann ein Array mit 2 Einträgen: name1 und status 1.

Aber willst du das wirklich mit einer .txt-Datei machen? Dann kann ja jeder seinen Status nach belieben ändern.

mfg
jagdfalke

wenn in name nie ein Zeilenumbruch oder ein = vorkommen, dann würde ich doch zu einer Properties Datei raten...
 

SnooP

Top Contributor
Wollte generell nur anmerken, dass man bei Datenbanken nie eine Internetverbindung benötigt - wenn der Server auf dem gleichen Rechner läuft, wie das Programm auch ;)

Das Problem ist bei sowas imho immer nur, dass das Verpacken des Programms aufwendiger wird bzw. die Installation, weil der Anwender dann auch noch ne DB installieren muss.

Also ... - da es hier um ne Anfängerfrage ging, würde ich dann doch eher die simple Textdatei empfehlen - sich ein Trennzeichen überlegen und mit split jede Zeile entsprechend bewerten, wie oben schon beschrieben.
 

Bleiglanz

Gesperrter Benutzer
gerade ein Anfänger hat doch mit der Methode mehr Arbeit als mit java.util.Properties

(load und save mit eingebaut)
 
O

olf

Gast
Teilerfolg!

Code:
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Temp/namen.txt"));
			
			while ((zeile = in.readLine())!= null){
				
				nameLevel = zeile.split("~");
				System.out.println("\n\nVorhandene User: " + nameLevel[0] + "(level " + nameLevel[1] + ")");				
			}
			in.close();
		}

Wie verhindere ich, dass die Datei jedesmal überschrieben wird?
ich möchte, dass neue Einträge am Ende der vorhandenen Liste landen.

Code:
Die Methode 'schreiben':

	static void schreiben(String namenEingabe, String level){//Methode zum schreiben in Datei
		try{

			FileWriter out = new FileWriter("C:/Temp/namen.txt");
			
			out.write(namenEingabe);
			out.write("~");
			out.write(level + "\n");
			out.close();
		}
		catch (IOException err){			
		}
	}


Die Datei soll dann beispielsweise so aussehen:

walter~a
horst~f
clothilde s.~b
usw.

Es dankt euch Olf
 
O

olf

Gast
Hab die Lösung gefunden :D :

So sieht meine Methode zum Schreiben aus:

Code:
	static void eintragen(String namenEingabe, String level){//Methode zum schreiben eines neuen Eintrages in Datei
		try{
			level = "0";
			FileWriter out = new FileWriter("C:/Temp/namen.txt",true);			
			out.write(namenEingabe);
			out.write("~");
			out.write(level + "\n");
			out.close();
			System.out.println("Dein Namen wurde in die User-Liste eingetragen!");
		}
		catch (IOException err){			
		}
	}

So wird die Datei eingelesen:


Code:
		try {
			BufferedReader in = new BufferedReader(new FileReader("C:/Temp/namen.txt"));
			System.out.println("Vorhandene User: ");
			while ((zeile = in.readLine())!= null){//liest so lange bis readline null zurückgibt				
				nameLevel = zeile.split("~");
				System.out.println(nameLevel[0] + " (level " + nameLevel[1] + ")");	
				if(namenEingabe.matches(nameLevel[0])){//wenn der User schon vorhanden ist tue folgendes
					in.close();
					System.out.println("Der User: '" +  nameLevel[0] + "' ist bereits vorhanden");
					nichtVorhanden = false;
					break;
				}
			}
			in.close();
			if(nichtVorhanden){//wenn der User nicht vorhanden ist tue folgendes
				eintragen (namenEingabe, level);//Aufruf der Methode "eintragen"
			}

		catch (FileNotFoundException err){//für den Fall, dass die Datei nicht vorhanden ist
			System.out.println("Fehler: Datei nicht vorhanden!\n" + err);
			try {
				FileWriter out = new FileWriter("C:/Temp/namen.txt");
				System.out.println("Datei wurde erstellt!");
				eintragen (namenEingabe, level);//Aufruf der Methode "eintragen"
				} 
				catch (IOException e) {
				e.printStackTrace();
				}
		}

		catch (IOException err){//bei sonstigen Fehlern
			System.out.println("Fehler: \n" + err);
		}

Der Dateiinhalt sieht dann beispielsweise so aus:

flo~0imke~0tom~0hans~0valli~0werner~0babsi~0walter~0olli~0clothilde~0

Schöner währe es gewesen, wenn die Einträge untereinander ständen, aber es geht auch so. Der Editor kennt \n anscheinend nicht als Zeilenumbruch.

MfG, Flo
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Screenshots machen und zwar viele und speichern Java Basics - Anfänger-Themen 12
H So viele Fehlermeldungen, dass ich nicht weiß wo das Problem ist. Java Basics - Anfänger-Themen 6
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
s_1895 zu viele Zeilen in der Main Methode Java Basics - Anfänger-Themen 4
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
R Zu viele leere Parameter Java Basics - Anfänger-Themen 8
T Variablen Beliebig viele Arrays in Schleife erstellen Java Basics - Anfänger-Themen 1
M Aufgabe: Eine Klasse und viele Untermethoden Java Basics - Anfänger-Themen 30
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
D zu viele MySQL Connections Java Basics - Anfänger-Themen 18
F Threads ftp4j, viele Dateien upload Java Basics - Anfänger-Themen 5
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Beliebig viele Rechtecke erzeugen Java Basics - Anfänger-Themen 5
N Beliebig viele parameter Java Basics - Anfänger-Themen 3
D Viele grafische unterschiede von Windows xp zu Windows 7 Java Basics - Anfänger-Themen 3
T unterschiedlich viele parameter übergeben Java Basics - Anfänger-Themen 5
T Zu viele Fenster - HILFE! Java Basics - Anfänger-Themen 5
Prafy Beliebig viele Arrays erstellen? Java Basics - Anfänger-Themen 2
J Methoden Beliebig viele Objekt-Eingabeparameter im Konstruktor Java Basics - Anfänger-Themen 6
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
M Zu viele Verkettungen von Klassen Java Basics - Anfänger-Themen 4
G Erste Schritte Wie viele Montage gab es? Java Basics - Anfänger-Themen 14
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
S Variablen viele Instanzvariablen vermeiden Java Basics - Anfänger-Themen 14
El_Lobo Methoden Zu viele Getter- und Settermethoden - geht das einfacher? Java Basics - Anfänger-Themen 3
L buffered reader produziert zu viele und seltsame zeichen Java Basics - Anfänger-Themen 2
D Erste Schritte Viele Objekte einer Klasse "verwalten" Java Basics - Anfänger-Themen 17
T Beliebig viele Werte in Array zwischenspeichern Java Basics - Anfänger-Themen 15
S Viele Fragen von einem Anfänger in Java Java Basics - Anfänger-Themen 2
F Viele Controller-Klassen Java Basics - Anfänger-Themen 5
P Datentypen extrem viele Fehler nur irgendwie seh ich den Grund ned... Java Basics - Anfänger-Themen 3
M Viele GUI-Variablen Java Basics - Anfänger-Themen 4
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
U JTable viele möglichkeiten, keine Lösung Java Basics - Anfänger-Themen 5
H Reflexion: Eine Methode, beliebig viele Parameter (Java 1.4.2) Java Basics - Anfänger-Themen 8
M Viele verschachtelte Schleifen Java Basics - Anfänger-Themen 14
Avalarion Erschaffung eines Shadowrun Charaktergenerators - Viele, Viele Fragen! Java Basics - Anfänger-Themen 6
S Viele Konstanten, EnumSet? Java Basics - Anfänger-Themen 3
S Stilfrage: Neue Klasse wenn es in einer Klasse zu viele Methoden gibt? Java Basics - Anfänger-Themen 14
Kasu So viele "_ " ausgeben, wie ein String lang ist Java Basics - Anfänger-Themen 4
I viele Dateinamen in ein String-Array mit File().list() Java Basics - Anfänger-Themen 4
mwildam Textfile lesen und schreiben - so viele Möglichkeiten Java Basics - Anfänger-Themen 5
U Zu viele werte in einer klasse Java Basics - Anfänger-Themen 4
K Viele Fragen eines Anfängers-Fließkommazahlen/Typenwandlung Java Basics - Anfänger-Themen 5
W Viele Objekte mit einem Konstrukor erzeugen Java Basics - Anfänger-Themen 10
R einfaches Programm, viele Probleme Java Basics - Anfänger-Themen 29
G viele zahlen mit wenig code Java Basics - Anfänger-Themen 4
X 1 MySQL-Verbindung und viele Threads Java Basics - Anfänger-Themen 4
E Viele Fragen Java Basics - Anfänger-Themen 8
J viele Objekte erzeugen Java Basics - Anfänger-Themen 21
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
K ResultSet: Wie viele Rows beinhaltet es? Java Basics - Anfänger-Themen 6
X Viele Komponenten automatisch erzeugen Java Basics - Anfänger-Themen 2
C zu viele paint()'s. Java Basics - Anfänger-Themen 6
M Viele Textfelder auslesen Java Basics - Anfänger-Themen 3
P x-viele Variablen anlegen Java Basics - Anfänger-Themen 2
F Mit der Zahl n n-viele Arrays erstellen ?! Java Basics - Anfänger-Themen 4
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
B JaxB - Unique Name updaten / Referenzen in XML Java Basics - Anfänger-Themen 0
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
E gleicher Name in der Basisklasse und in der Subklasse Java Basics - Anfänger-Themen 45
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
J ArrayList Name mit String erstellen Java Basics - Anfänger-Themen 8
B Get property field von Name Java Basics - Anfänger-Themen 9
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
M Objekt Name für MethodenAufruf nachträglich zuweisen? Java Basics - Anfänger-Themen 2
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
L Name im Array suchen Java Basics - Anfänger-Themen 12
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
M Name der Komponete/Variabel/Methode Java Basics - Anfänger-Themen 5
I Spieler Name eintragen und Random Gewinner Java Basics - Anfänger-Themen 4
D Taskmanager Name Java Basics - Anfänger-Themen 2
I JTree, Root-Name ändern Java Basics - Anfänger-Themen 4
T Erste Schritte Elemente finden, deren Name erst "zusammengesetzt" wird Java Basics - Anfänger-Themen 8
S Vererbung Fehlermeldung: the hierarchy of the type "class name" is inconsistent Java Basics - Anfänger-Themen 10
D Name einer Variable als String nutzen Java Basics - Anfänger-Themen 13
T Name des Objektes OOP Java Basics - Anfänger-Themen 4
O String name mit fortlaufender Nummer Java Basics - Anfänger-Themen 14
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
S Name eines boolean ausgeben (nicht den Wert) Java Basics - Anfänger-Themen 43
D Mysql schauen Name bereits existiert Java Basics - Anfänger-Themen 7
E Java Name von Exe festlegen? Java Basics - Anfänger-Themen 7
T brauche den pfad Name! Java Basics - Anfänger-Themen 2
F String-Inhalt als Datatype-Name Java Basics - Anfänger-Themen 5
D Methode anhand deren Name aufrufen Java Basics - Anfänger-Themen 4
N Name zu sehr ähnlich??? Java Basics - Anfänger-Themen 12
K Datentypen Full qualified Name dynamisch gestalten Java Basics - Anfänger-Themen 7
E Welcher Package Name bei Eclipse/Android? Java Basics - Anfänger-Themen 2
H2SO3- name der klasse ausgeben Java Basics - Anfänger-Themen 6
-horn- public static double[][][] NAME() nur per RETURN Wertrückgabe möglich? Java Basics - Anfänger-Themen 20
Z objekt erstellen von canonical name einer klasse Java Basics - Anfänger-Themen 6
A Klasse importieren wenn 2 mal gleicher Name Java Basics - Anfänger-Themen 2
O DocumentListener -> Name des JTextFields bekommen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben