Textdateien unter MAC und PC

Hallo Experten,
ich habe ein kleines Programm, dass ein ASCII-Textfile in eine MySQL-DB importiert. Auf einem PC läuft alles perfekt durch, nur auf dem MAC kommt es teilweise zu NullPointerExcpetions.

Lese das File folgendermaßen ein:

f = new BufferedReader(new FileReader(filename));

und speichere den Inhalt über „f.readLine()“ in einer String-Variable.

Die verschiedenen Datensätze/Felder sind durch 7 ASCII-Zeichen (7,11,12,14,17,23,27) getrennt. Über einen „StringTokenizer“ teile ich die Variable anhand der Trennzeichen auf und importiere diese Felder dann in die DB.

Wie gesagt, auf dem PC läuft alles - nur auf dem MAC kommt teilweise eine Fehlermeldung. Werden ASCII-Textdateien in diesem Fall auf den Systemen unterschiedlich gehandhabt und wenn ja inwiefern? Wo könnte das Problem sein?

Habe leider keinen MAC zum testen, aber mein Bekannter sagt mir halt immer, dass irgendwas nicht geht.

Vielleicht weiss jemand woe das Problem liegt. Danke schon mal.

gruss Markus

Moin

Lese das File folgendermaßen ein:

f = new BufferedReader(new FileReader(filename));

Das ist ja eine Totsünde…

DATEIFORMAT = ASCII,... ISO1245-10... ;

f = new BufferedReader(new InputStreamReader (new FileInputStream(file), DATEIFORMAT);

Wie gesagt, auf dem PC läuft alles - nur auf dem MAC kommt
teilweise eine Fehlermeldung.

Auf dem MAC hat ein return-zeichen für Zeilenumbruch nur ein Byte, auf dem PC hat’s 2.

cu

Servus,
danke erstmals für deine Hilfe. Wenn ich jetzt mithilfe des folgenden Code die Textdatei einlese, müsste es dann sowohl auf dem Mac als auch auf dem PC gehen?

f = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "ASCII"));
while((temp = f.read()) != -1){
 sBuffer.append((char)temp);
}

Wobei sBuffer ein StringBuffer ist.

gruss Markus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Moin

f = new BufferedReader(new InputStreamReader(new
FileInputStream(filename), „ASCII“));
while((temp = f.read()) != -1){
sBuffer.append((char)temp);
}

Wenn die Datei wirklich echtes ASCII ist (was weder windows (ISO-1252-XYZ) noch MAC (ISO-86XYZ ?) beherrschen): JA.

Das geht auch schneller mit:

String temp = f.readLine();
while (temp!=null){
sBuffer.append(temp);
temp = f.readLine();
}

cu