Java.io.filenotfoundexception (accesso negato)

di il
13 risposte

Java.io.filenotfoundexception (accesso negato)

Ciao a tutti,
vi è mai capitato di tentare di leggere un file di testo e ritrovarvi con l'errore java.io.filenotfoundexception {nomefile} (accesso negato)?
Il problema si verifica nell'IDE NetBeans.
Grazie in anticipo a chi vorrà e saprà rispondere.

Fulvio

13 Risposte

  • Re: Java.io.filenotfoundexception (accesso negato)

    Ciao!

    sei sicuro che non stai cercando di leggere una file e non un directory (isFIle / isDirectory)?
    sei sicuro di avere i permessi di lettura su quel file??
  • Re: Java.io.filenotfoundexception (accesso negato)

    Grazie @fermat, avevi ragione, si trattava di una Directory.
    Posso approfittare della tua disponibilità per chiederti un'altra cosa sempre sullo stesso argomento?

    Ciao e Grazie
    Fulvio
  • Re: Java.io.filenotfoundexception (accesso negato)

    fulviot66 ha scritto:


    Grazie @fermat, avevi ragione, si trattava di una Directory.
    Posso approfittare della tua disponibilità per chiederti un'altra cosa sempre sullo stesso argomento?

    Ciao e Grazie
    Fulvio
    se si tratta dello stesso argomento chiedi qua.
    sennò apri un'altra discussione!
  • Re: Java.io.filenotfoundexception (accesso negato)

    Grazie.
    L'errore è sempre FileNotFoundException, ma se indico il path relativo del file ("Elenco-Libri.txt"), mi dice (Impossibile Torvare il File Specificato).
    Invece se indico il path assoluto ("C:\\Users\\Fulvio\\Documents\\NetBeansProjects\\LeggiFile\\src\\Elenco-Libri.txt") me lo trova e lo legge.
    A cosa è dovuto questo comportamento e come si può evitare?
    Occorre per forza indicare il path assoluto del File System?
    E se cambiasse il tipo di File System?
    Es. Linux, Mac?

    Grazie in anticipo
    Fulvio
  • Re: Java.io.filenotfoundexception (accesso negato)

    fulviot66 ha scritto:


    A cosa è dovuto questo comportamento e come si può evitare?
    Occorre per forza indicare il path assoluto del File System?
    Se non metti un percorso "assoluto"... allora stai usando un percorso "relativo". Relativo alla directory "corrente". Quale è? DIPENDE da dove/da come avvi la applicazione Java.
  • Re: Java.io.filenotfoundexception (accesso negato)

    Grazie @andbin, ti rispondo subito.
    Il file "Elenco-Libri.txt" si trova nella stessa cartella del package sorgente.
    E' sbagliato?
    Dove andrebbe messo?

    Ciao e Grazie
    Fulvio
  • Re: Java.io.filenotfoundexception (accesso negato)

    Stavolta mi rispondo da solo.
    Il file Elenco-Libri.txt va messo nella cartella classes creata dal processo di building del compilatore, oppure in una della cartelle indicate dalla variabile d'ambiente CLASSPATH.
    Corretto?
  • Re: Java.io.filenotfoundexception (accesso negato)

    fulviot66 ha scritto:


    Stavolta mi rispondo da solo.
    Il file Elenco-Libri.txt va messo nella cartella classes creata dal processo di building del compilatore, oppure in una della cartelle indicate dalla variabile d'ambiente CLASSPATH.
    Corretto?
    Non è tanto quello il punto! La questione è un'altra: quel file da leggere "fa parte" della applicazione? Dovrà finire insieme ai file .class dentro un file .jar da distribuire ad altri? O deve essere esterno ad un jar e se sì, posizionato rispetto a cosa?
    Queste cose vanno valutate PRIMA.
  • Re: Java.io.filenotfoundexception (accesso negato)

    fa parte dell'applicazione?
    In realtà il file ("Elenco-Libri.txt") non deve far parte del file .jar da distribuire.
    Sarà l'utente a crearlo e a metterlo...Già, dove?
    Penso che almeno un'indicazione bisognerà fornirgliela, se vogliamo che l'applicazione funzioni.

    Quindi ripeto la domanda:
    "Dove metto il file Elenco-Libri.txt, in modo che leggibile dal seguente programma"?

    Grazie in anticipo per risposte e suggerimenti

    Fulvio
    package com.fulviotarable;
    
    import java.io.*;
    
    class LeggiFile {
      public static void main(String args[])
      throws IOException {
        FileReader f;
    //    f=new FileReader("C:\\Users\\Fulvio\\Documents\\NetBeansProjects\\LeggiFile\\build\\classes\\Elenco-Libri.txt");
        f=new FileReader("Elenco-Libri.txt");
    
        BufferedReader b;
        b=new BufferedReader(f);
    
        String s;
    
        while(true) {
          s=b.readLine();
          if(s==null)
            break;
          System.out.println(s);
    	}  
      }
    }
  • Re: Java.io.filenotfoundexception (accesso negato)

    fulviot66 ha scritto:


    Sarà l'utente a crearlo e a metterlo...Già, dove?
    Penso che almeno un'indicazione bisognerà fornirgliela, se vogliamo che l'applicazione funzioni.
    Allora una soluzione è che sia l'utente a indicare dove si trova il file passando il percorso (assoluto o relativo che sia) come "argomento" del main.
  • Re: Java.io.filenotfoundexception (accesso negato)

    Intendi dire: "args"?
    Possibile che non ci sia una soluzione diversa, magari con metodi tipo getByResources()? O altri?
  • Re: Java.io.filenotfoundexception (accesso negato)

    fulviot66 ha scritto:


    Intendi dire: "args"?
    Sì, è una soluzione.

    fulviot66 ha scritto:


    Possibile che non ci sia una soluzione diversa, magari con metodi tipo getByResources()? O altri?
    Ascolta: se tu mettessi come codice

    new FileReader("Elenco-Libri.txt")

    Il file Elenco-Libri.txt viene cercato nella directory "corrente" (e solo lì). Quindi è l'utente "umano" che deve sapere (perché glielo hai detto tu .. perché ha visto il sorgente, ecc...) che DEVE fare in modo che quando lancia l'applicazione la directory corrente sia quella giusta che contiene quel file.
    Anche questa È una eventuale soluzione.

    Non vuoi che sia così? Ce ne sono altre.
  • Re: Java.io.filenotfoundexception (accesso negato)

    Sì, all'inizio pensavo che la directory fissa fosse la soluzione perché non riuscivo a far digerire al mio metodo di lettura il file che avevo selezionato con il FileChooser, poi ho reso statici entrambi i metodi e ci sono riuscito.
    Ora il file può trovarsi dove piace di più all'utente.

    Grazie per avermi fatto riflettere sula fatto che non sempre la soluzione più rapida è la migliore.

    Fulvio
Devi accedere o registrarti per scrivere nel forum
13 risposte