4

J'essaie d'initialiser un objet FileInputStream à l'aide d'un objet File. Je reçois une erreur FileNotFound sur la ligneRécupère FileNotFoundException lors de l'initialisation de FileInputStream avec l'objet File

fis = new FileInputStream(file); 

C'est étrange que j'ai ouvert ce fichier par la même méthode pour faire regex plusieurs fois.

Ma méthode est la suivante:

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-site (accès refusé)
        à java .io.FileInputStream.open (native Method)
        à java.io.FileInputStream. (Source inconnue)
        à java.io.FileInputStream. (Source inconnue)
        à controller.ScanEditRegions.fileToBIS (ScanEditRegions.java:52)
        à controller.ScanEditRegions.tidyHTML (ScanEditRegions.java:38)
        à controller.ScanEditRegions.process (ScanEditRegions.java:64)
        à controller.ScanEditRegions. visitAllDirsAndFiles (ScanEditRegions.java:148)
        à controller.Manager.main (Manager.java:10)

+0

Le fichier est là, avez-vous des problèmes de permission? –

Répondre

9

A en juger par le stacktrace que vous avez collé dans votre message je suppose que vous ne pas avoir le droit de lire le fichier.

La classe File vous permet de effectue des contrôles utiles sur un fichier, certains d'entre eux:

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

Par exemple, vous pouvez vérifier: existe() & & isFile() & & canRead() et imprimer un meilleur message d'erreur en fonction de la raison pour laquelle vous ne pouvez pas lire le fichier.

+0

Le problème était un répertoire a été transmis (ainsi que de nombreux fichiers) – Ankur

+0

même problème que j'ai trouvé et mon erreur est 02-10 14: 18: 25.367: W/System.err (365): java.io.FileNotFoundException: /storage/emulated/0/bhanuдо_свидания.txt: ouverture a échoué: ENOENT (aucun fichier ou répertoire) 02-10 14: 18: 25.367: W/System.err (365) : \t à libcore.io.IoBridge.open (IoBridge.java:409) 02-10 14: 18: 25,367: W/System.err (365): \t à java.io.FileInputStream. (FileInputStream.java:78) –

3

C'est doit faire avec des autorisations de fichiers dans les paramètres du système d'exploitation. Vous avez démarré le processus Java en tant qu'utilisateur n'ayant aucun droit d'accès au répertoire spécifique.

3

Vous pouvez vous assurer que (dans l'ordre de capot probable):

  1. Le fichier existe.
  2. Le fichier n'est pas un répertoire.
  3. Vous ou le processus Java avez des autorisations pour ouvrir le fichier.
  4. Un autre processus n'a pas de verrou sur le fichier (probablement, comme vous le feriez probablement recevoir un IOException standard au lieu de FileNotFoundException)
+0

même problème que j'ai trouvé et mon erreur est 02-10 14: 18: 25.367: W/System.err (365): java.io.FileNotFoundException: /storage/emulated/0/bhanuдо_свидания.txt: ouverture échouée: ENOENT (Aucun tel fichier ou répertoire) 02-10 14: 18: 25.367: W/System.err (365): à libcore.io.IoBridge.open (IoBridge.java:409) 02-10 14: 18: 25.367: W/System.err (365): à java.io.FileInputStream. (FileInputStream.java:78) –

-1

Je pense que vous exécutez l'instruction à partir d'eclipse ou que tout fichier java IDE et cible est également présent dans l'espace de travail IDE. Vous obtenez l'erreur car Eclipse ne peut pas lire le fichier cible dans le même espace de travail. Vous pouvez exécuter votre code à partir de l'invite de commande. Cela ne devrait pas faire exception.

+0

L'affiche originale a déjà accepté une réponse et expliqué la cause première de son problème - il passait dans un répertoire plutôt que dans un chemin de fichier. Veuillez vous assurer de vérifier ce que les autres ont écrit avant de répondre à une question historique. –