Frage

Ich versuche, ein Fileinputstream-Objekt mit einem File-Objekt zu initialisieren. Ich erhalte einen FileNotFound Fehler auf der Linie

fis = new FileInputStream(file);

Das ist seltsam, da ich diese Datei durch die gleiche Methode geöffnet habe regex oft zu tun.

Meine Methode ist wie folgt:

private BufferedInputStream fileToBIS(File file){

    FileInputStream fis = null;
    BufferedInputStream bis =null; 
    try {
        fis = new FileInputStream(file);
        bis = new BufferedInputStream(fis);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
    return bis;
}

java.io.FileNotFoundException: C: \ dev \ server \ tomcat6 \ webapps \ sample-Website (Zugriff wird verweigert)
bei java.io.FileInputStream.open (native Methode)     
bei java.io.FileInputStream. (Unknown Source)     
bei java.io.FileInputStream. (Unknown Source)     
bei controller.ScanEditRegions.fileToBIS (ScanEditRegions.java:52)     
bei controller.ScanEditRegions.tidyHTML (ScanEditRegions.java:38)     
bei controller.ScanEditRegions.process (ScanEditRegions.java:64)     
bei controller.ScanEditRegions.visitAllDirsAndFiles (ScanEditRegions.java:148)     
bei controller.Manager.main (Manager.java:10)

War es hilfreich?

Lösung

Gemessen an der stacktrace Sie in Ihrem Beitrag klebte ich würde vermuten, dass Sie die Rechte nicht haben, die Datei zu lesen.

Die File-Klasse ermöglicht Ihnen, nützliche Kontrollen auf einer Datei ausführt, einige von ihnen:

boolean canExecute();
boolean canRead();
boolean canWrite();
boolean exists();
boolean isFile();
boolean isDirectory();

Zum Beispiel könnten Sie überprüfen. Exists () && isFile () && canRead () und drucken Sie eine bessere Fehlermeldung je nach dem Grunde, warum Sie die Datei lesen kippen

Andere Tipps

Dies ist, hat mit Dateiberechtigungen Einstellungen im Betriebssystem zu tun. Sie haben den Java-Prozess als Benutzer gestartet, die keine Zugriffsrechte auf das spezifische Verzeichnis hat.

Sie möchten sicherstellen, dass (in der Reihenfolge der Wahrscheinlichkeit-Haube):

  1. Die Datei existiert.
  2. Die Datei ist kein Verzeichnis.
  3. Sie oder der Java-Prozess haben Berechtigungen, um die Datei zu öffnen.
  4. Ein anderer Prozess hat keine Sperre für die Datei (wahrscheinlich, wie Sie wahrscheinlich eine Standard IOException statt FileNotFoundException erhalten würde)

Ich glaube, Sie die Anweisung von Eclipse ausführen oder jedem Java-IDE und Zieldatei sind in IDE Arbeitsbereich ebenfalls vorhanden. Sie erhalten den Fehler als Eclipse-kippt die Zieldatei im selben Arbeitsbereich lesen. Sie können den Code von Eingabeaufforderung ausführen. Es soll nicht durch eine Ausnahme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top