Ich habe Methode für beim Lesen von Datei:Java FileExeptions nicht gefunden werfen, aber Datei wirklich existieren
public String getFile(String fileName) {
String line;
StringBuilder result = new StringBuilder("");
try {
//Get file from resources folder
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(fileName).getFile());
try (BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream(file), "UTF8"))) {
while ((line = in.readLine()) != null) {
result.append(line).append("\n");
}
}
} catch (Exception e) {
System.out.println("Err: " + e);
}
return (result.toString());
}
Wenn ich diesen Code ausführen ich java.io.FileNotFoundException
ein exeption bin immer:
Err: java. io.FileNotFoundException: D: \ programov% C3% A1n% C3% AD \ GITBitBucket \ Schnell% 20Annotation \ maven-Projekt-quickannotation \ target \ classes \ template \ basic.txt
Aber ich bin mir sicher, dass diese Datei wirklich existiert.
Original-Pfad ist:
D: \ Programování \ GITBitBucket \ Schnell Annotation \ Maven-Projekt-quickannotation \ target \ classes \ template \ basic.txt
denke ich, es ist ein Problem mit Abschnitt des Pfades:
Programov%C3%A1n%C3%AD vs Programování
Quick%20Annotation vs Quick Annotation
Können Sie mir helfen?
Ich weiß nicht, wie man es löst.
Vielen Dank für Ihre Hilfe.
Meine Vermutung ist, ist das Problem nicht innerhalb der Methode, die Sie geschrieben, aber in den Code Ihrer 'getFile (String)' Methode aufrufen. Weil der 'String fileName' codierte Sonderzeichen enthält. Woher kommt dieser Wert? - [Debug Ihrer Anwendung] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) –
Ich Caling die Methode mit diesem Code: getFile ("Vorlage/Basis. txt"); –
Mein schlechtes. 'Classloader.getResource (String name)' gibt eine 'URL' zurück, die der Grund ist. –