Hi,
komischerweise kommt immer eine Exception, wenn ich ein String in eine Zahl umwandeln will:
Ich sage jedoch, dass er \n nicht in das char soll:
Gespeichert habe ich das ganze so:
Vielleicht wollt ihr wissen, was das Programm machen soll:
Es werden 2 Zahlen in eine Textdatei geschrieben. Sie werden alle miteinander addiert und ebenfalls gespeichert.
Alle Zahlen werden mit Tabulator voneinander getrennt.
Wenn man das Programm ausliest, soll es die ganzen Summen miteinander addieren, so dass man die Gesamt summe erhält.
Also so sieht die Textdatei aus:
EDIT: Ich sehe gerade, dass man in diesem Forum nicht mehrere Leerzeichen speichern kann die für Tabulator stehen.
Man liest also nur die Summen aus (25, 5, 10) und addiert sie.
Ich habe das Programm ja auch hingekriegt, aber eben nur mit trim(), obwohl ich die whitespaces eigentlich gar nicht in den char bzw. in den String puffer speichere.
Liebe Grüße
Reality
komischerweise kommt immer eine Exception, wenn ich ein String in eine Zahl umwandeln will:
java.lang.NumberFormatException: For input string: "26"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:477)
at java.lang.Integer.parseInt(Integer.java:518)
at HauptFenster.btGesamtSumme_actionPerformed(HauptFenster.java:112)
at HauptFenster_btGesamtSumme_actionAdapter.actionPerformed(HauptFenster.java:146)
at java.awt.Button.processActionEvent(Button.java:382)
at java.awt.Button.processEvent(Button.java:350)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Ich sage jedoch, dass er \n nicht in das char soll:
Code:
void btGesamtSumme_actionPerformed(ActionEvent e) {
int summe = 0;
String puffer = "";
int i;
int ticker = 0;
char c[] = new char[1];
try{
FileReader fr = new FileReader("summe.txt");
while((i = fr.read()) != -1){
if(i != (int) '\n') // \n nicht speichern!
c[0] = (char) i;
if(ticker == 2){ //Nur die Summen auslesen
puffer += new String(c);
}
if(i == (int) '\n'){
summe += Integer.parseInt(puffer.trim());
puffer = "";
ticker = 0; //Wieder von vorne anfangen
}
if(c[0] == '\t'){ Zählen der Tabulatoren
ticker++;
}
tfGesamtSumme.setText(Integer.toString(summe));
}
}catch(IOException ef){}
}
Gespeichert habe ich das ganze so:
Code:
void btWrite_actionPerformed(ActionEvent e) {
int a = Integer.parseInt(tfA.getText());
int b = Integer.parseInt(tfB.getText());
int summe = a+b;
try{
BufferedWriter bw = new BufferedWriter(new FileWriter("summe.txt", true));
bw.write(a + "\t" + b + "\t" + summe);
bw.newLine();
bw.close();
}catch(IOException ef){}
tfSumme.setText(Integer.toString(summe));
}
Vielleicht wollt ihr wissen, was das Programm machen soll:
Es werden 2 Zahlen in eine Textdatei geschrieben. Sie werden alle miteinander addiert und ebenfalls gespeichert.
Alle Zahlen werden mit Tabulator voneinander getrennt.
Wenn man das Programm ausliest, soll es die ganzen Summen miteinander addieren, so dass man die Gesamt summe erhält.
Also so sieht die Textdatei aus:
12 13 25
2 3 5
6 4 10
EDIT: Ich sehe gerade, dass man in diesem Forum nicht mehrere Leerzeichen speichern kann die für Tabulator stehen.
Man liest also nur die Summen aus (25, 5, 10) und addiert sie.
Ich habe das Programm ja auch hingekriegt, aber eben nur mit trim(), obwohl ich die whitespaces eigentlich gar nicht in den char bzw. in den String puffer speichere.
Liebe Grüße
Reality