Question

Je suis en train d'initialiser un objet FileInputStream à l'aide d'un objet de fichier. Je reçois une erreur FileNotFound sur la ligne

fis = new FileInputStream(file);

Ceci 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)

Était-ce utile?

La solution

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

La classe de fichiers vous permet de contrôles utiles sur PERFORMs 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 selon la raison pour laquelle vous cant lire le fichier

Autres conseils

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

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

  1. Le fichier existe.
  2. Le fichier est pas un répertoire.
  3. Vous ou le processus Java pour ouvrir des autorisations avez 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)

Je pense que vous exécutez la déclaration d'éclipse ou tout IDE Java et le fichier cible est également présent dans l'espace de travail IDE. Vous obtenez l'erreur comme Eclipse ne peux pas lire le fichier cible dans le même espace de travail. Vous pouvez exécuter votre code d'invite de commande. Il ne devrait pas par exception.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top