Datei einlesen und weiterverarbeiten

Alexiios

Mitglied
Hallo,

ich habe das Problem das ich ein Programm programmieren moechte, welches eine Datei einliest und dann die dritte und fuenfte Zeile um die Variable zaehler und fails erhoeht.
Mein bisheriger Ansatz

Java:
public static void schreiben(){
		
		int zaehler1 = zaehler;
		int fails1 = fails;
		
		String Stringzaehler = String.valueOf(zaehler);
		String Stringfails = String.valueOf(fails);
		
		if(file.exists()){
			BufferedReader brea = null;
			try {
				brea = new BufferedReader(new FileReader(file));
			} catch (FileNotFoundException e) {
				System.out.println("Fehler Code: x625bn87m");
				e.printStackTrace();
			}
			String line;
			int a = 0;
	        try {
				while ((line = brea.readLine()) != null) {
					a++;
				    if(a == 3){
				    	int linezahl1 = Integer.parseInt(line);
				    }
				    else if (a == 5){
				    	int linezahl2 = Integer.parseInt(line);
				    }
				}
							
				String neueZahl = String.valueOf(linezahl1);
				String neueFails = String.valueOf(linezahl2);
				
				try {
					BufferedWriter bw = new BufferedWriter(new FileWriter(file));
					bw.write("----------------------------------");
					bw.newLine();
				    bw.write("Bis jetzt insgesamt richtig gelöst:");
				    bw.newLine();
				    bw.write(neueZahl);
				    bw.newLine();
				    bw.write("Bis jetzt insgesamt falsch gelöst:");
				    bw.newLine();
				    bw.write(neueFails);
				    bw.newLine();
				    bw.write("----------------------------------");

				    
				    bw.flush();
				    bw.close();
				} catch (IOException e1) {
					e1.printStackTrace();
				}		
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
		
		else{
		try {
			BufferedWriter bw = new BufferedWriter(new FileWriter(file));
			bw.write("----------------------------------");
			bw.newLine();
		    bw.write("Bis jetzt insgesamt richtig gelöst:");
		    bw.newLine();
		    bw.write(Stringzaehler);
		    bw.newLine();
		    bw.write("Bis jetzt insgesamt falsch gelöst:");
		    bw.newLine();
		    bw.write(Stringfails);
		    bw.newLine();
		    bw.write("----------------------------------");

		    
		    bw.flush();
		    bw.close();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		}
	}

Ich hoffe jemand kann mir helfen 🙂
 
hmm die habe ich im eifer des gefechtes vergessen....
Ab Zeile 30 soll der die Variable neueZahl in das Dokument schreiben, nur er schreibt immer wieder 0 rein, also die variable neueZahl ist 0! Obwohl sie im schritt davor also in der if abfrage noch 1 oder 2 ist....
 
mich wunderts dass das compiliert...

Java:
 while ((line = brea.readLine()) != null) {
                    a++;
                    if(a == 3){
                        int linezahl1 = Integer.parseInt(line); //dieser wert ist nur innerhalb der {} vom if sichtbar, da du eine neue variable initialisert....
                    }
                }
                            
                String neueZahl = String.valueOf(linezahl1); //linezahl1 dürfte es hier gar nicht geben...

falls du irgendwo ein static int linezahl1 hast, lösch das "int" in der zeile wo du parst... sonst überschreibst du dir die variable...
 
in der if bedingung definierst du eine lokale variable linezahl1, was die variable die du eigentlich meinst ueberschreibt
 
Java:
public class start {
	
	public static int zaehler = 0;
	public static int fails = 0;
	
	static int linezahl1;
	static int linezahl2;

das habe ich noch oeb drueber stehen.
und im Konstruktur wie die variable fails und zaehler jewils auf eins gesetzt...
ich verstehe jetzt nicht was du damit meinst....
 

Neue Themen


Zurück
Oben