Input/Output FileNotFoundException, obwohl File existiert

Bitte aktiviere JavaScript!
Hallo, im Prinzip möchte ich den Inhalt eines Dokumentes in einen String packen.
Das gesuchte Dokument hat die Location C:\Users\user1\eclipse-workspace\Projekt1\DokumenteA\Dokument14.htm
Ich durchlaufe das File Array bis ich mein gesuchtesFile finde und um den Inhalt des gesuchten Dokuments nun in einen String zu packen will ich einen BufferedReader erstellen.

Java:
        File[] textDokumente = new File("..//Projekt1//DokumenteA").listFiles();

        for (File aktuellesFile : textDokumente) {

            if (aktuellesFile.getName().contains(gesuchtesFile)) {

                StringBuilder bldr = new StringBuilder();

                String str;

                BufferedReader in = new BufferedReader(new FileReader(aktuellesFile.getName()));
                while ((str = in.readLine()) != null)
                    bldr.append(str);

                in.close();

                String content = bldr.toString();
            }

        }
In der Zeile des BufferedReaders taucht nun die FileNotFoundException auf, obwohl das aktuelle File im Ordner existiert.

Java:
 java.io.FileNotFoundException: Dokument14.htm (Das System kann die angegebene Datei nicht finden.)
Woran könnte das liegen?
 
Das getName() gibt nur den Namen der Datei selbst aus. Also versuchst Du die Datei aus ..\Projekt1\DokumenteA im aktuellen Verzeichnis zu öffnen.

Statt .getName() könntest Du .getAbsoluteFile() nutzen.

Edit: FileWriter kann aber auch das File direkt nehmen, also einfach nur ein new FileReader(aktuellesFile).
 
Zwei Anmerkungen:
1. Warum erstellst du nicht direkt ein File mir dem gesuchten Pfad und schaust ob dieses existiert?
Java:
new File("..//Projekt1//DokumenteA/Dokument14.htm").exists()
2. Dein BufferedReader is AutoClosable, nutze ihn als solches
Java:
try(BufferedReader in = new BufferedReader(new FileReader(dokument14file));) {
                while ((str = in.readLine()) != null) bldr.append(str);
} // kein Aufruf von in.close()
 
Danke für die Antworten, konnte den Fehler recht schnell beheben mit euren Tipps.
Habe eine weitere Frage in einem ähnlichen Bereich, bevor ich jetzt einen neuen Thread öffne frag ich hier einfach mal.

Ich habe ein .ini file mit x Zeilen die jeweils drei keywords enthalten. Sieht etwa so aus
Paris FR firma1
Köln BR firma2
Peking CH firma3
usw.

Nun möchte ich Zeile für Zeile überprüfen ob eine Line Keywords enthält die mit einem anderen File übereinstimmen welches so aussehen könnte:
user1_Paris_FR_firma1_mail.htm

Dafür überlegt habe ich mir folgendes:
Java:
                            File iniFile= new File("..//Projekt1//myIni.ini");
                            BufferedReader br = new BufferedReader(new FileReader(iniFile));                            
                            String line = null;
                            while ((line = br.readLine()) != null) {
                                
                                if (filename.contains(abc) && filename.contains(line)) { //erste Bedingung ist true
                                     //do something
                                }
                            }

In meinem Code bekomme ich nicht hin das die zweite Bedingung true wird.
Ich möchte es hinbekommen das die Prüfung jedes der drei keywords einer Zeile überprüft und nur true wird, wenn alle drei keywords enthalten sind. Wie gehe ich das am besten an?
 
Für jede Zeile:
Java:
for (String part : line.split("\\s")) {
    if (filename.contains(part)) {
        // do something
    }
}
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben