Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [ERROR] (No such file or directory)

    Salve a tutti, ho il seguente problema.
    Ho creato attraverso google.app.engine un database al quale ho passato delle informazioni prese da un file. il file è presente nella mia cartella WEB-INF ma tuttavia il programma non lo trova:

    codice:
    java.io.FileNotFoundException: Users/Marti/Documents/workspace/Disoccupazione/war/WEB-INF/Disoccupazione.csv  (No such file or directory)
    
    Io però sono certa di avere passato il percorso corretto del file: l'ho preso direttamente dal mio terminale.

    Grazie a tutti per l'aiuto.
    Martina

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Guarda, detto in generale, un file della webapp presente sotto la context-root non andrebbe mai referenziato tramite path "assoluto", altrimenti la webapp non è certo "portabile".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok, pertanto come mi consigli di passargli il file? Io ho fatto in questo modo poiché è stato il professore stesso a dire così..ma non mi funziona.

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Io guardando quel path ci trovo, inoltre, due cose piuttosto strane/dubbie:

    1) Il percorso sembra essere "relativo"... la cartella "Users", infatti, non è preceduta né da uno slash, né da altro (e questo è piuttosto strano: significa che la directory "Users" dovrebbe essere relativa alla working directory...)

    2) Considerando che il servlet container generalmente viene avviato con un utente con "pochi privilegi", chiedergli di accedere una cartella privata (le cartelle all'interno della Users sono private di ciascun utente, ma sto parlando della cartella "Users" che si trova nella root, non una fantomatica "Users" relativa alla working directory) è quantomeno dubbio e può portare ad avere proprio tale eccezione (se l'utente non ha i diritti per accedere ad un determinato file, la JVM solleva una FileNotFoundException).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Martina! Visualizza il messaggio
    Ok, pertanto come mi consigli di passargli il file?
    Cosa si deve fare con il file? (intendo: CHI come codice legge quel file?)

    Se basta ottenere un InputStream, bisogna avere il ServletContext

    codice:
    ServletContext servletContext = .....
    
    InputStream is = servletContext.getResourceAsStream("/WEB-INF/Disoccupazione.csv");

    Il "/" iniziale è relativo alla context-root.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Devo leggere ogni riga del file, creare delle entity e inserirle in un database creato tramite le Google App Engine per Eclipse. Dovrò poi creare delle pagine che interrogano il database e restituiscono all'utente il risultato dell'interrogazione

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Martina! Visualizza il messaggio
    Devo leggere ogni riga del file
    Bene, quel InputStream --> InputStreamReader --> BufferedReader

    (BufferedReader ha readLine() )
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    codice:
    private DatastoreService ds; 
    	public ListaNazioni2 (){
    		ds =  DatastoreServiceFactory.getDatastoreService();
    	}
    
    
    	public void load (String file) {
    		try {	
    			BufferedReader br = new BufferedReader(new FileReader (file);
    			String line; 
    			while ((line = br.readLine()) != null) {
    				String []e = line.split(",");
    				String nomepaese = e[0].trim().toLowerCase();
    				String nomeregione = e[1].trim().toLowerCase();
    				Double valore = Double.parseDouble(e[2].trim());
    				Entity en = new Entity ("tabRegioni"); 
    				en.setProperty("nazione", nomepaese);
    				en.setProperty("nome", nomeregione);
    				en.setProperty("valore", valore);
    				ds.put(en);
    			}
    		}
    		catch (IOException e) {
            	System.out.println("errore");
                e.printStackTrace();
    			}
    		}


    Esatto io infatti quello l'ho fatto.
    In particolare chinerò dalle pagine JSP il mio metodo load dandogli in ingresso il file.

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Martina! Visualizza il messaggio
    dandogli in ingresso il file.
    Sì ma non il file come path (come detto prima) ma quel InputStream come ho detto io.
    E visto che è un file di testo, devi (dovresti) sapere quale è il charset usato nel file e quindi specificarlo a InputStreamReader. Perché altrimenti il tutto diventa di nuovo non "portabile".
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    codice:
    BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("WEB-INF/Disoccupazione.csv"), "UTF8"));
    
    Direi che così dovrebbe andare. Grazie mille...

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.