Fehler bei einem Programm

BlEeZaH

Mitglied
Liebe Java Foren Nutzer,

ich möchte ein Programm schreiben mit dem Kundendaten ausgelesen werden können und auch bearbeitet werden können!

In C:\Kunden\Peter.txt ist dieser Text gespeichert : Peter 60 Berlin Maennlich
Das Programm ist noch nicht fertig, lediglich die erste Möglichkeit:

Konsole: (eigene Eingabe in eckigen Klammern)

Kundendatenbank
Kundeninformationen
1. Abfragen
2. Bearbeiten
Wählen Sie 1 oder 2!
[2]
Welcher Kunde soll bearbeitet werden?
[Peter]
Was soll bearbeitet werden?
1. Alter
2. Wohnort
3. Geschlecht
[1]
Neues Alter:
[10]

Jetzt hat sich nicht in der Peter.txt das Alter geändert, sonder die Peter.txt Datei ist einfach leer.

Programmcode:

Main Klasse:

Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Scanner;



public class Grundlagen {
	public static void main(String[] args){
		
		
		System.out.println("Kundendatenbank");
		System.out.println("Kundeninformationen");
		System.out.println("1. Abfragen");
		System.out.println("2. Bearbeiten");
		System.out.println("Wählen Sie 1 oder 2!");
		
		Scanner s = new Scanner(System.in);
		int auswahl = s.nextInt();
		
		Formatter format = null;
		
		switch (auswahl){
		
		case 1:
			System.out.println("Welcher Kunde soll ausgelesen werden?");
			
			String kundenAbfrage = s.next();
			
			File f = new File ("C:\\Kunden\\" + kundenAbfrage + ".txt");
			
			Ausleser a = new Ausleser (f);
			
			Kunde kunde = a.lesen();
			
			System.out.println(kunde.ausgeben());
			
			a.schliesen();
			
			break;
			
		case 2:
			System.out.println("Welcher Kunde soll bearbeitet werden?");
			String kundeDerBearbeitetWird = s.next();
			
			File m = new File ("C:\\Kunden\\" + kundeDerBearbeitetWird+ ".txt");
			
			System.out.println("Was soll bearbeitet werden?\n 1. Alter\n2. Wohnort\n3. Geschlecht");
			
			int wahl = s.nextInt();
			switch (wahl){
			
			case 1:
				String [] inhalt = new String[4];
				if (!m.exists()){
					
					try {
						Formatter format2 = new Formatter ("C:\\Kunden\\" + kundeDerBearbeitetWird+ ".txt");
					} catch (FileNotFoundException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
					
					
				}
				 Scanner leser;
				try {
					
					leser = new Scanner (m);
					while (leser.hasNext()){
						int i = 0;
						inhalt [i] = leser.next();
						i++;
						
						
					}
					
					System.out.println("Neues Alter:");
					String neuesAlter = s.next();
					
					format = new Formatter (m);
					format.format("%s %s %s %s", inhalt[0], neuesAlter, inhalt [2], inhalt[3]);
					
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				 
			case 2:
				
			case 3:
				
			}
			break;
		
		default:
			System.out.println("Bitte nur 1 oder 2!");
			break;
		
		}
		
		
		
	}
	
        
	}

Ausleser Klasse:

Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Ausleser {

	
	Scanner s;
	
	Ausleser (File f){
		
		try{
			
			s = new Scanner(f);
			
		}catch (FileNotFoundException e){
			
			System.out.println("Kunde nicht vorhanden!");
			e.printStackTrace();
		}
	}
	
	public Kunde lesen(){
		
		if(s.hasNext()){
			
			String name = s.next();
			int alter = s.nextInt();
			String wohnort = s.next();
			String geschlecht = s.next();
			
			return new Kunde (name, alter, wohnort, geschlecht);
		}
		return null;
	}

	public void schliesen() {
		// TODO Auto-generated method stub
		s.close();
	}
	
}

Kunde Klasse

Java:
public class Kunde {
	
	String name;
	int alter;
	String wohnort;
	String geschlecht;
	
	
	Kunde (String name, int alter, String wohnort, String geschlecht){
		this.name = name;
		this.alter = alter;
		this.wohnort = wohnort;
		this.geschlecht = geschlecht;
		
		
		
		
	}
	
	
	
	public String ausgeben(){
		
		return String.format("Name: %s/nAlter: %s/nWohnort: %s/nGeschlecht: %s/n", name, alter, wohnort, geschlecht);
		
	}
	
	
	
	

}


Ich hoffe Ihr könnt mir bei meinem Problem helfen!

Gruß
BlEeZaH
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Da du nirgendwo was in eine Datei schreibst ist es ziemlich unwahrscheinlich, dass sich der Inhalt der .txt ändert

Gruss

Claus
 

Harry Kane

Top Contributor
Ergänze mal
Code:
format.flush()
und
Code:
format.close()
nach der besagten Zeile 82.
 

VfL_Freak

Top Contributor
Moin,

Wird in Zeile 82 in der Main Klasse nicht etwas reingeschrieben? In der Datei ist tatsächlich nach dem ausführen alles weg!
genau! Ein Blick in die API (Java Platform SE 7) zeigt:
Formatter

public Formatter(File file) throws FileNotFoundException

Constructs a new formatter with the specified file.

The charset used is the default charset for this instance of the Java virtual machine.

The locale used is the default locale for this instance of the Java virtual machine.

Parameters:
file - The file to use as the destination of this formatter. If the file exists then it will be truncated to zero size; otherwise, a new file will be created. The output will be written to the file and is buffered.
Throws:
SecurityException - If a security manager is present and checkWrite(file.getPath()) denies write access to the file
FileNotFoundException - If the given file object does not denote an existing, writable regular file and a new regular file of that name cannot be created, or if some other error occurs while opening or creating the file

Gruß
Klaus
 

BlEeZaH

Mitglied
Ergänze mal
Code:
format.flush()
und
Code:
format.close()
nach der besagten Zeile 82.

Vielen Dank das hat mir zumindest ein wenig weitergeholfen, jetzt ist die Peter.txt Datei am Ende nicht leer sondern jetzt steht das drin: Maennlich 30 null null. Ich verstehe nicht wieso.....und warum ist das Männlich nach vorne gerutscht?!

Ich hoffe Ihr könnt mir helfen!

Gruß
Justin
 

Joose

Top Contributor
Ich verstehe nicht wieso.....und warum ist das Männlich nach vorne gerutscht?!

Weil du wahrscheinlich deine Eingaben so getätigt hast das auf inhalt[0] dann das Geschlecht steht.
Code:
format.format("%s %s %s %s", inhalt[0], neuesAlter, inhalt [2], inhalt[3]);
Hier "legst" du eine Formatierung fest. Die Werte im Array inhalt aber kannst du in beliebiger reihenfolge eingeben
 

BlEeZaH

Mitglied
Weil du wahrscheinlich deine Eingaben so getätigt hast das auf inhalt[0] dann das Geschlecht steht.
Code:
format.format("%s %s %s %s", inhalt[0], neuesAlter, inhalt [2], inhalt[3]);
Hier "legst" du eine Formatierung fest. Die Werte im Array inhalt aber kannst du in beliebiger reihenfolge eingeben

Die Informationen für das Array inhalt[] werden ja aus der Peter.txt Datei ausgelesen. "Peter" stand ganz am Anfang in dieser .txt Datei. Müsste dann nicht eigentlich inhalt[0]= "Peter" sein? Und müsste dann nicht auch "Peter" am Anfang gespeichert werden?

Gruß
Justin
 

BlEeZaH

Mitglied
Ich habe das Problem gelöst:
So sah es vorher aus: (Beides ab Zeile 66 in der Main-Klasse)

[JAVA=66] Scanner leser;
try {

leser = new Scanner (m);
while (leser.hasNext()){
int i = 0;
inhalt = leser.next();
i++;


}
[/code]

Der Fehler: einmal muss int i = 0; vor das try da es sonst immer überschrieben wird, desweiteren muss es nicht i++; heißen sondern ++i; (siehe Inkrement Dekrement auf Wikipedia).

So sollte es eigentlich aussehen:

[JAVA=66] Scanner leser;
try {

leser = new Scanner (m);

int i = 0;

while (leser.hasNext()){

inhalt = leser.next();

++i;

}
[/code]

Vielen Dank für alle Bemühungen.

Gruß
Justin
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
Moin,

richtig, Schleifenvariablen müssen immer VOR der Schleife initialisiert werden!

desweiteren muss es nicht i++; heißen sondern ++i; (siehe Inkrement Dekrement auf Wikipedia).
Nein, das ist in diesem Fall so nicht richtig, da es hier völlig egal ist!
Post- und Pre-Inkrement (oder auch ...-Dekrement) sind nur von Bedeutung, wenn du gleichzeitig ein Zuweisung durchführst!

Wie in Wikipedia schon zu lesen ist:
Java:
int i = 5;
int c = i++; // c = 5, da erst NACH der Zuweisung inkrementiert wird !!
// -----------------------------------------------------------------
int i = 5;
int d = ++i; // d = 6, das VOR der Zuweisung inkrementiert wird !!

In Deinem Fall ist das völlig egal! Du erhöhst einfach Deine Zählvariable um 1 und im nächsten Schleifendurchlauf wird dann dieser erhöhte Wert verwendet !

Probiere mal beides aus! Du wirst keinen Unterschied feststellen :)

Gruß
Klaus
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
S Fehler: <ID> erwartet Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
Pinhg Discord JDA Bot - Fehler Allgemeine Java-Themen 3
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
L Fehler mit Boolean. (Glaube ich zumindest) Allgemeine Java-Themen 6
P Selenium Scriipt zeigt Fehler beim Import Allgemeine Java-Themen 3
O Fehler bei Variablen Allgemeine Java-Themen 2
HerrBolte Seltsamer Fehler nur in der Windows- und nicht in der Java-Console O_O Allgemeine Java-Themen 16
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
C Fehler bei der Benutzung von itextpdf Allgemeine Java-Themen 1
U Fehler beim Compillieren Allgemeine Java-Themen 13
x46 String Format Fehler Allgemeine Java-Themen 2
bueseb84 Fehler beim Import von Maven Dependencies aus lokalem artifactory Allgemeine Java-Themen 2
MiMa Datei verschieben hat einen Fehler?? Allgemeine Java-Themen 20
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
E Hat der Compiler einen Fehler oder warumbeendet return nicht eine Methode ? Allgemeine Java-Themen 7
T Fehler bei IF abfrage Allgemeine Java-Themen 8
C Fehler beim Debuggen von Listen Allgemeine Java-Themen 4
M Einheitenrechner - Fehler Allgemeine Java-Themen 12
D Erste Schritte Fehler mit negativen und 0 Zahlen im String Allgemeine Java-Themen 6
T Denk-Fehler? Allgemeine Java-Themen 4
A Finde den Fehler nicht. Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Unbekannter Fehler Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
I Fehler beim Ant-Package erstellen mit Java 9 Allgemeine Java-Themen 1
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
T OOP Fehler im Design Allgemeine Java-Themen 9
Thallius Unfassbarer Fehler. Brauche Ideen zum Debuggen Allgemeine Java-Themen 9
U Eclipse MANIFEST fehler Allgemeine Java-Themen 7
I Fehler bei HashMaps Darstellung Allgemeine Java-Themen 10
R Classnotfoundexception Fehler Allgemeine Java-Themen 3
A Fehler beim Aktualisieren JTable Allgemeine Java-Themen 1
N Compiler-Fehler Warum erhalte ich einen Nullpointer Fehler? Allgemeine Java-Themen 2
N Prim's Algorithm - wo ist der Fehler? Allgemeine Java-Themen 3
J-Gallus Erste Schritte Wahrscheinlich Anfänger Fehler beim rechnen. Falsches Ergebnis. Allgemeine Java-Themen 9
M Line-Fehler Allgemeine Java-Themen 8
U Input/Output Warum wirft mir das Programm diesen Fehler? Allgemeine Java-Themen 6
RalleYTN Merkwürdiger Fehler mit JFrame im Vollbild Allgemeine Java-Themen 4
V AudioInputStream Fehler Allgemeine Java-Themen 1
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
G Fehler mit Vector Allgemeine Java-Themen 3
F Java Fehler "buildTableModel" Allgemeine Java-Themen 3
F Fehler in Zeile in Log schreiben Allgemeine Java-Themen 6
DanielsLPecke Input/Output Arduino komischer Fehler. Allgemeine Java-Themen 38
V JavaFX Fehler beim Starten einer Jar Allgemeine Java-Themen 7
S Hashtable Fehler Allgemeine Java-Themen 14
S Zwei String vergleichen, Fehler markieren Allgemeine Java-Themen 3
C Hilfe bei einer Fehler meldung Allgemeine Java-Themen 3
K Was ist mein Fehler? Allgemeine Java-Themen 2
Tausendsassa Compiler-Fehler Fertiges Programm mit Fehler Allgemeine Java-Themen 10
B Eclipse Nach Export einer .jar Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 5
K Fehler beim erstellen von .jar Datei Allgemeine Java-Themen 3
P Java Fehler auf Win2008 Server java.io.FilePermission IE8 Version JRE 1.7.0_51 Allgemeine Java-Themen 7
M Eclipse - Fehler: Hauptklasse de.xyz.init.MeineKlasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 2
Seikuassi Swing Stehe auf dem Schlauch...(BufferedReader_Writer-Fehler?) Allgemeine Java-Themen 4
M Eclipse Fehler beim Installieren des Plugins "Jigloo" Allgemeine Java-Themen 12
A Eclipse - Fehler beim "RUN" - "Unable to Launch - The selection cannot be launched" Allgemeine Java-Themen 6
F HILFEEEEEE JAVA Fehler - Tiny Umbrella Allgemeine Java-Themen 1
N JavaFX IndexOutOfBounds-Fehler Allgemeine Java-Themen 11
N GPIB - Fehler: Unable to open device Allgemeine Java-Themen 1
S Ganzes Programm "stucked" - JVM-Fehler? Allgemeine Java-Themen 2
D Variablen Ausgabe bzw. einlese Fehler Allgemeine Java-Themen 7
I Fehler java.lang.NullPointerException Allgemeine Java-Themen 5
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
B Eclipse Fehler in eclipse/Java Allgemeine Java-Themen 13
B Fehler beim Auslesen von Einstellungen. Zwei ähnliche Blöcke, nur eins geht. Allgemeine Java-Themen 5
H JUnit Fehler beim Compilieren - erledigt Allgemeine Java-Themen 0
J Fehler beim parsens eine Datums Allgemeine Java-Themen 3
A Thread Fehler absichtlich provozieren Allgemeine Java-Themen 3
J Compiler-Fehler .nextLine fehler Allgemeine Java-Themen 3
B Fehler im Java-Code Allgemeine Java-Themen 4
S Java Fehler bei Konsolenprogramm Allgemeine Java-Themen 2
N Was ist ein Fehler (Requirement-Engineering) Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
T Programm bleibt ohne Fehler stehen Allgemeine Java-Themen 4
G Fehler beim instanzieren einer Generischen Klasse Allgemeine Java-Themen 5
K Eclipse Fehler beim Ausführen meines Programms in Eclipse Allgemeine Java-Themen 11
K Input/Output Fehler bei Dateierzeugung Allgemeine Java-Themen 7
M Fehler bei Remoteinstallation von Java Allgemeine Java-Themen 5
M Fehler bei Verwendung von TexturePaint Allgemeine Java-Themen 16
M JUnit & Multithreading - sehr seltener Fehler Allgemeine Java-Themen 3
G Merkwürdiger Fehler NetBeans Allgemeine Java-Themen 2
G Native Library / Fehler beim Laden der .so/.dll Datei Allgemeine Java-Themen 17
P java tabelle auslesen - xls (excel) fehler Allgemeine Java-Themen 5
iB0T Unverständlicher Fehler Allgemeine Java-Themen 5
S Antlr Grammatik übersetzt ohne Fehler, dennoch wird Zahl nicht als Eingabe erkannt Allgemeine Java-Themen 4
S Fehler mit JScrollPane Allgemeine Java-Themen 4
K SimpleDateFormat Fehler Allgemeine Java-Themen 3
M import Fehler Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben