kann mir vielleicht jemand bei folgendem Code erläutern, der eine Datei "personFile.txt" Zeile um Zeile auslesen soll, wie hier die Datei angegeben werden muss? Also ist ein Pfad notwendig oder muss die Datei im src Verzeichnis der .java Datei sein?
Java:
package personFiles;importjava.io.*;publicclassPersonFileReader{/**
* @param args
*/publicstaticvoidmain(String[] args){try{//worauf wird hier genau zugegriffen? oder ist der code grundsätzlich blödsinn?File personFile =newFile("personFile.txt");FileReader personFileReader =newFileReader(personFile);BufferedReader reader =newBufferedReader(personFileReader);String line =null;//bei der while schleife bekomme ich den fehler: "the left-hand side of an assignment must be a //"variablewhile((line = reader.readLine())=!null){System.out.println(line);}
reader.close();}//wozu ist diese exception gut?catch(Exception ex){
ex.printStackTrace();}}}
1. In Zeile 19 ist ein Fehler, guck mal hin. Tipp: Operator?
2. Zeile 25: Exception ist die Superklasse von allen Exceptions du kannst sie auch durch die einzelnen
Exceptions auswechseln die von den benutzten Methoden geworfen werden (z.B. IOException).
3. Kompilierst du auf der Kommandozeile? Dann müsste die Datei in dem gleichen Verzeichnis wie die
Java- bzw. Class-Datei liegen.
zu 3. : Benutze eclipse. Da muss die Datei dann vermutlich auch in den selben Ordner, wie die Klasse?!
Wie kann man denn einen Dateipfad angeben, um z.b. eine Datei von einem Server einzulesen?
Ich glaube wenn du Eclipse benutzt musst du die Datei in das "src"-Verzeichnis packen.
Wenn du eine Datei von einem Server einlesen willst, musst du noch ein wenig mehr
machen als den Pfad zu ändern. Denn die Datei muss dann ja über ein Protokoll (http)
geladen werden, dafür muss dann eine Verbindung zum Server aufgebaut werden......
Aber in der Schleife wird line ja reader.readLine zugewiesen. Und das wird dann solange ausgeführt, bis eine Leerzeile kommt oder?
Ok, also habe die Datei nun so ziemlich überall reinkopiert (zu den .class Dateien, deren Überordner, und den .java Dateien + Überordnern), aber es kommt trotzdem noch:
java.io.FileNotFoundException: personFile.txt (Das System kann die angegebene Datei nicht finden)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at personFiles.PersonFileReader.main(PersonFileReader.java:12)
Wenn man mit relativen Pfaden arbeitet, ist die Basis immer das Arbeitsverzeichnis der Anwendung ("Working Directory"). In Eclipse kann man das in den Run-Configurations unter Working-Directory angeben; der Default ist normalerweise das Projektverzeichnis (also das Verzeichnis, in dem das src-Unterverzecihnis liegt).