Files außerhalb eines des jar-files einlesen mac

nilskober

Mitglied
Hallo zusammen,

ich hab ein Problem. Ich hab ein Programm geschrieben, mit dem ich zwei .txt Dateien vergleichen kann. In Eclipse funktioniert alles bestens. Mit dem exportierten jar-file gibts aber auf Mac Probleme (windows ist alles gut). Und zwar können die Dateien nicht eingelesen werden, obwohl ich den absoluten Pfad angebe.

Ich lese die Dateien ein mit
Code:
FileReader fr = new FileReader(path);

Bei großen Dateien (ca. 10mb) ist das Einslesen zudem sehr langsam (auch auf windows).
Dafür verwende ich:
Java:
for (int temp;(temp = fr.read()) != -1;) {
		  char c = (char) temp;
		  if (c != '\n' && c != ' ') meinString += c;
		}

Ich würde mich sehr über eine Antwort freuen.

LG
Nils
 
Zuletzt bearbeitet:
Naja wenn du immer nur char für char einließt, dauert das eben. Schlauer wäre vielleicht das ganze mit einem BufferedReader zeilenweise zu lesen.
 
Wir sollten schon wissen was du da als absoluten Pfad angibst dait wir dir helfen können.

Der Code der da oben steht ist zudem sehr ineffizient. Lies die ganze Datei auf einmal ein und mach dann ein string replace. Das geht wesentlich schneller.

Gruß

Claus
 
Danke für eure Antworten!

Das Problem mit der Geschwindigkeit hab ich jetzt mit einem StringBuffer gelöst.

Und als absoluten Pfad hab ich
Code:
/Users/Nils/Desktop/test.txt
, das hier geht auch nicht
Code:
/Volumes/USB_STICK/test.txt
.
 
Kann es sein das die Software nicht die benötigte Berechtigung hat? Ansonsten fällt mir auch nichts ein warum das nicht gehen sollte. Hast Du es mal in Eclipse im Debugger laufen lassen auf dem Mac? Kommt da dann wirklich ein File not found? Du hast ja keine Linefeeds oder sowas am Ende drin oder?

Probier doch mal eine Datei im Prgrammpfad selber relativ einzulesen mit "./filename" ob das geht.

Gruß

Claus
 
Ich habs grad mal ein bisschen probiert:

-in eclipse mit
Code:
test.txt
geht, auch mit unterordnern also
Code:
test_ordner.test.txt
(Dafür hab ich die Datei bzw den Ordner direkt in das Projekt in Eclipse reinkopiert.

-Aber auch in Eclipse gehen solche Pfade
Code:
./test.txt
nicht (wenn das file im Workspace liegt nicht im Projekt-Ordner

-Im Terminal geht nach wie vor nichts - weder relativ noch absolut. Könnte daran liegen dass es ein Jar ist, oder?

LG
Nils
 
Zuletzt bearbeitet:
hmm in der tat gilt das für den MAC-Unsinn. Ich habe gerade nachgeschlagen, tatsächlich gilt das als absoluter Pfad für MAC.
 
Ich habs grad mal ein bisschen probiert:

-in eclipse mit
Code:
test.txt
geht, auch mit unterordnern also
Code:
test_ordner.test.txt
(Dafür hab ich die Datei bzw den Ordner direkt in das Projekt in Eclipse reinkopiert.

-Aber auch in Eclipse gehen solche Pfade
Code:
./test.txt
nicht (wenn das file im Workspace liegt nicht im Projekt-Ordner

-Im Terminal geht nach wie vor nichts - weder relativ noch absolut. Könnte daran liegen dass es ein Jar ist, oder?

LG
Nils

Nein kann es nicht. Ich mache z.B.

Java:
			File file=new File("resources/xml/"+fileName); //$NON-NLS-1$

und greife damit auf ein file zu, welches zwar im AppPfad ist aber definitv nicht im Workspace enthalten.
Du must irgendein anderes grundlegendes, wahrscheinlich total doofes, Problem haben.

Gruß

Claus
 

Zurück
Oben