filereader

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hey, ich möchte gerne eine zahl aus einer textdatei auslesen (steht einfach am anfang drin).
in der API find ich nur diese read-methode die einzelne chars einliest, weiss aber nicht wie ich die Zahl als integer irgendwie interpretieren kann:

Code:
FileReader reader = null;
        try {
            reader = new FileReader("highscores.txt");
            String s = new String("");
            for (int c; (c = reader.read()) != -1;) {
                s.concat((char)c + "");
            }
            highscore = Integer.parseInt(s);
        
        } catch (FileNotFoundException ex) {
            highscore = -1;
            
        } finally {
            try {
                reader.close();
            } catch (Exception e) {
            }

Er stürzt sofort ab mit einer ewig langen Fehlerliste, die aufhört mit:

at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
 

Murray

Top Contributor
String s sind immutable; der Aufruf der Methode concat liefert lediglich einen neuen String zurück; am ursprünglichen String-Objekt ändert sich nichts.
Wenn schon, dann also
Code:
s = s.concat( (char)c + "");

Da String#concat aber immer neue String-Objekte erzeugt und Du hier zusätzlich durch das Anfügen des Leerstrings auch noch weitere Objekte anlegst, ist das sicher nicht die effizienteste Lösung.
 
G

Guest

Gast
jo hatte ich auch versucht, aber trotzdem fehler:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "123
"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:456)
at java.lang.Integer.parseInt(Integer.java:497)

zumindest hat er erkannt, dass die Zahl 123 in der textfile steht.

wo isn jetz noch das problem?
 

Murray

Top Contributor
Der Zeilenwechsel am Ende des Strings (sieht man im Stack-Trace).
Das könntest Du vermeiden, indem die Methode String#trim verwendest:
Code:
highscore = Integer.parseInt(s.trim());
 
G

Guest

Gast
aha okay...

is zwar jetzt für meinen Fall total egal, aber du meintest es wäre nicht sehr effizient.
Wie kann man das besser lösen?
 

Murray

Top Contributor
ungetestet:
Code:
            reader = new FileReader("highscores.txt");
            int highscore = 0;
            for (int c; (c = reader.read()) != -1;) {
                if ( (c <= '0') && ( c >= '9')) {
                  //--- Ziffer gelesen -> bisheriges Ergebnis um eine Stelle nach links
                  //--- verschieben und gerade gelesen Ziffer anhaengen
                  highscore = 10*highscore + ( ((int)c) - ((int)'0'));
                } else {
                   //--- keine Ziffer mehr -> Zahl vollstaendig gelesen
                   break;
                }
            }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D FileWriter / FileReader Problem Java Basics - Anfänger-Themen 10
S Mit FileReader lesen, in ArrayList speichern Java Basics - Anfänger-Themen 4
T filereader , file aus programm einlesen Java Basics - Anfänger-Themen 12
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
L FileReader Java Basics - Anfänger-Themen 7
L FileReader Java Basics - Anfänger-Themen 2
D Hilfe bei FileReader und BufferedReader Java Basics - Anfänger-Themen 2
Y Datei mit relativem Dateipfad per FileReader aus .JAR heraus auslesen Java Basics - Anfänger-Themen 4
A FileReader Problem Java Basics - Anfänger-Themen 14
D JFileChooser & FileReader Java Basics - Anfänger-Themen 4
L Input/Output FileReader Pfadangabe Java Basics - Anfänger-Themen 7
L While-Schleife und filereader Java Basics - Anfänger-Themen 5
L FileReader und Filewriter Java Basics - Anfänger-Themen 4
F wo datei für filereader ablegen? Java Basics - Anfänger-Themen 11
M FileReader Zeilenangabe Java Basics - Anfänger-Themen 22
L RandomAcessFile getFilePointer in normalen FileReader Java Basics - Anfänger-Themen 4
H OOP FileReader Einleseergebnis Java Basics - Anfänger-Themen 5
R Von wo nimmt der FileReader seine daten Java Basics - Anfänger-Themen 7
J fileReader: wird dateipfad benötigt? Java Basics - Anfänger-Themen 8
Burny91 FileReader und Writer gleichzeitg nutzen Java Basics - Anfänger-Themen 2
Burny91 FileReader / FileWriter / BufferedWriter An einer bestimmten Zeile String ersetzten Java Basics - Anfänger-Themen 2
F FileReader Frage Java Basics - Anfänger-Themen 3
M Frage zur Klasse FileReader Java Basics - Anfänger-Themen 6
G Character-orientierte File-Streams mit der Klasse FileReader Java Basics - Anfänger-Themen 5
Hamstinator Frage zu BufferedReader/FileReader Java Basics - Anfänger-Themen 4
F FileReader Methode Read() int? Java Basics - Anfänger-Themen 2
calzone FileReader, lesen ohne die Datei zu überschreiben? Java Basics - Anfänger-Themen 3
K FileReader Systempfad Mac Java Basics - Anfänger-Themen 11
hdi FileReader / BufferedReader langsam? Java Basics - Anfänger-Themen 3
A Filereader - An den Anfang des File springen Java Basics - Anfänger-Themen 2
N Pfad und FileReader? Java Basics - Anfänger-Themen 2
S Filereader funktioniert nicht! Fehlersuche Java Basics - Anfänger-Themen 9
K Problem mit .toString und FileReader Java Basics - Anfänger-Themen 2
G zusätzliche "" bei Pfadangabe z.B. bei FileReader Java Basics - Anfänger-Themen 2
B Problem mit Filereader und filewriter Java Basics - Anfänger-Themen 20
H IOException bei FileReader Java Basics - Anfänger-Themen 3
P BufferedReader / FileReader Key und Values Java Basics - Anfänger-Themen 7
K FileReader BufferedReader & Arrays Java Basics - Anfänger-Themen 14
D Wie funktionieren FileReader Java Basics - Anfänger-Themen 6
M FileReader.read(char[]) - Größe des Arrays? Java Basics - Anfänger-Themen 4
R FileInputStream.read() != FileReader.read(). Pls Help Java Basics - Anfänger-Themen 5
S FileReader-Problem Java Basics - Anfänger-Themen 2
G Textdatei auslesen - Text anfügen - FileReader Java Basics - Anfänger-Themen 18
G FileReader Java Basics - Anfänger-Themen 10
P FileReader Java Basics - Anfänger-Themen 2
V filereader soll aus config.txt pfade lesen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben