Hallo!
Ich habe folgendes Problem: Ich möchte mit Hilfe des BufferedReader eine txt mit Binärzahlen, Zeile für Zeile, einlesen und dann jede Zeile in eine Dezimalzahl umwandeln. Meine Methode, welche die Binärzahl in eine Dezimalzahl umwandelt funktioniert, wenn ich manuell einen String definiere und die Methode dann ausführe. Benutze ich jedoch den BufferedReader und übergebe den String vom BufferedReader dann der Methode, kriege ich eine NumberFormatException in Zeile 14. Aber ich übergebe doch nur Zahlen und keine anderen Zeichen, oder? Hier ist mein Code:
[JAVA=50]
import java.io.*;
/* Programm liest via BufferedReader(FileReader), Zeile für Zeile, eine txt ein.
* Anschließend wird versucht jede Zeile in eine Dezimalzahl umzuwandeln.
*/
public class BinaryParser {
public static int parse(String binaryString) {
try {
if (binaryString.length() < 9) {
int dezimalZahl = Integer.parseInt(binaryString,2);
System.out.print(dezimalZahl);
} else {
throw new InvalidRangeException();
}
} catch (InvalidRangeException e) {
System.out.println("The Value of the input: " + binaryString + " is too long!");
}
return 0;
}
public static void main(String [] args) throws IOException {
//String test= "00000000";
//parse(test);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("BinaryFile.txt"));
String line;
while ((line = reader.readLine()) != null) {
parse(line);
}
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException i) {
throw new IOException();
}
} reader = null;
}
}
}
[/code]
Ich habe folgendes Problem: Ich möchte mit Hilfe des BufferedReader eine txt mit Binärzahlen, Zeile für Zeile, einlesen und dann jede Zeile in eine Dezimalzahl umwandeln. Meine Methode, welche die Binärzahl in eine Dezimalzahl umwandelt funktioniert, wenn ich manuell einen String definiere und die Methode dann ausführe. Benutze ich jedoch den BufferedReader und übergebe den String vom BufferedReader dann der Methode, kriege ich eine NumberFormatException in Zeile 14. Aber ich übergebe doch nur Zahlen und keine anderen Zeichen, oder? Hier ist mein Code:
[JAVA=50]
import java.io.*;
/* Programm liest via BufferedReader(FileReader), Zeile für Zeile, eine txt ein.
* Anschließend wird versucht jede Zeile in eine Dezimalzahl umzuwandeln.
*/
public class BinaryParser {
public static int parse(String binaryString) {
try {
if (binaryString.length() < 9) {
int dezimalZahl = Integer.parseInt(binaryString,2);
System.out.print(dezimalZahl);
} else {
throw new InvalidRangeException();
}
} catch (InvalidRangeException e) {
System.out.println("The Value of the input: " + binaryString + " is too long!");
}
return 0;
}
public static void main(String [] args) throws IOException {
//String test= "00000000";
//parse(test);
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("BinaryFile.txt"));
String line;
while ((line = reader.readLine()) != null) {
parse(line);
}
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException i) {
throw new IOException();
}
} reader = null;
}
}
}
[/code]
Zuletzt bearbeitet: