Wie lösen Sie die java.nio.Datei.NoSuchFileException?
Habe ich eine Datei namens "Ergebnis.csv" aus, die Datei die ich Lesen möchte bestimmte Daten und zeigt Sie an. Ich habe die Datei in meinem eclipse-Projekt-Ordner selbst. Noch bin ich nicht in der Lage, die Datei zu Lesen.
public static void main(String [] args) {
int i=0;
String filename="result.csv";
Path pathToFile = Paths.get(filename);
try (BufferedReader br = Files.newBufferedReader(pathToFile, StandardCharsets.US_ASCII)) {
//read the first line from the text file
String line = br.readLine();
//loop until all lines are read
while (i<10) {
//use string.split to load a string array with the values from
//each line of
//the file, using a comma as the delimiter
String[] attributes = line.split(",");
double x=Double.parseDouble(attributes[8]);
double y=Double.parseDouble(attributes[9]);
System.out.println(GeoHash.withCharacterPrecision(x, y, 10));
//read next line before looping
//if end of file reached, line would be null
line = br.readLine();
i++;
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
AUSGABE:
java.nio.file.NoSuchFileException: result.csv
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.Files.newByteChannel(Unknown Source)
at java.nio.file.spi.FileSystemProvider.newInputStream(Unknown Source)
at java.nio.file.Files.newInputStream(Unknown Source)
at java.nio.file.Files.newBufferedReader(Unknown Source)
at com.uvce.cse.searchiot.geohash.TestGeoHash.main(TestGeoHash.java:19)
Kann mir jemand zeigen wo genau ich verpasst? und wie kann ich das umgehen oder Alternative Methoden für diese Methode?
- Arbeiten Sie mit einem Maven-Projekt? Das problem ist, dass die Datei nicht auf Ihrem classpath, also, wenn Sie führen Sie Ihre Programm Java kann, nicht die Datei finden.
- Eine Abhilfe wäre, nur verwenden Sie den vollständig qualifizierten Pfad zur Datei, z.B.
C:\your_folder\project\result.csv
. Die alternative ist, laden Sie es aus dem classpath.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Ihre Standard-Verzeichnis beim Start der Anwendung ist nicht, was Sie denken, es ist. Versuchen Sie die folgende Zeile, um Ihren code, kurz nachdem Sie den Pfad erstellt:
Diese Weise werden Sie genau sehen, wo es gesucht wird die Datei.
Wie es zu beheben ist deine Entscheidung. Sie können einen vollständigen Pfad spec, statt nur eine mit dem Namen, oder setzen Sie den Dateinamen in einer besonderen "Ressourcen" - Verzeichnis und verweisen Sie über einen relativen Pfad, oder verschieben Sie die Datei an, wo Ihr Standard-Verzeichnis.
Wenn Ihr
file("result.csv")
im src-Verzeichnis, sollten Sie die "src/Ergebnis.csv" statt "Ergebnis.csv".Dort das problem ist, dass java nicht in der Lage zu finden, die "Ergebnis.csv" - Datei im Projekt-Ordner. Also, versuchen Sie, verwenden Sie den vollständig qualifizierten Pfad zur Datei, z.B.
C:\your_folder\project\result.csv
in der Path-variable. Ich denke auch, Es wäre besser, verwenden bufferedreader wie diese:BufferedReader br = new BufferedReader(new FileReader(insert here the String in which is defined the path to the file));
Überprüfen Sie die verwendet der BufferedReader hierWenn Sie ein MacOSX-Benutzer bitte geben Sie den Pfad der Datei manuell ein, anstatt Sie zu kopieren aus "Get Info".
Du wirst etwas wie dieses, wenn Sie es kopiert aus "Get Info":
/Benutzer/Benutzername<200e><2068><2068>/Desktop<2069>/source.txt