Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2006, 11:03   #1
cyberziz
Junior Member
 
Iscritto dal: Sep 2006
Messaggi: 9
Java: errore in scrittura su disco.

Ciao a tutti, ho un problema piuttosto curioso. Questo è il mio codice:

public static void main(String[] args) {

String content = "contenuto del file";

String path = "C:\\prova.txt";

File file = new File(path);

try {
FileWriter writer = new FileWriter(file);
writer.write(content);
writer.close();
}
catch (IOException ex) {
ex.printStackTrace();
}
}


Presupponendo che esista il drive C: , non riesco a capire come possa essere possibile che esca il seguente output:

java.io.FileNotFoundException: C:\prova.txt (Impossibile trovare il percorso specificato)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at java.io.FileWriter.<init>(FileWriter.java:73)
at memory.Untitled1.main(Untitled1.java:21)



Qualcuno ha qualche idea, o si è mai trovato ad affrontare un problema analogo? Grazie in anticipo dell'aiuto!
cyberziz è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 11:07   #2
Andrea16v
Senior Member
 
L'Avatar di Andrea16v
 
Iscritto dal: Mar 2003
Messaggi: 3852
Il file prova.txt non esiste, prima di scriverci sopra penso tu debba crearlo..
__________________
Cerco fotocamera con buono zoom!! CLICCA!
° Moderatore del Forum Ufficiale di ElaborarE (responsabile sezione HI-FI e Car Audio) °
Andrea16v è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 11:12   #3
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da cyberziz
Presupponendo che esista il drive C: , non riesco a capire come possa essere possibile che esca il seguente output:

[color=DarkRed][size=2][font=Courier New]java.io.FileNotFoundException: C:\prova.txt (Impossibile trovare il percorso specificato)
Uhm .. strano. Il codice è corretto. Qui da me (Win2000) ho provato e funziona senza problemi, garantisco! Hai provato a scrivere in qualche altro path?? Prova a vedere se ci sono dei permessi particolari per scrivere in C:\. Prova ad esempio con notepad a scrivere lì un file di testo.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 11:21   #4
cyberziz
Junior Member
 
Iscritto dal: Sep 2006
Messaggi: 9
@ Andrea: ho provato a creare prima il file, utilizzando il metodo createNewFile, ma tutto quello che ottengo è un'altra IOException dello stesso tipo! Incredibile...

@ andbin: grazie per aver provato, prima di tutto; poi, ho pensato anch'io alla possibilità di permessi negati...però è il mio pc di casa, con il mio solo utente a livello amministratore, quindi ho permessi per scrivere dappertutto. Ah, il codice lo eseguo da JBuilder, forse che la jvm abbia qualche impostazione che vieta la scrittura??
cyberziz è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 11:53   #5
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
createNewFile genera un'eccezione nel caso in cui si verifichi un errore durante il tentativo di creazione e dovrebbe produrre la stessa eccezione derivante da un tentativo di scrittura su un file che non può essere creato.

FileWriter tenta di creare il file nel caso in cui non ci sia.

Se il problema fosse dovuto a dei permessi di scrittura mancanti, l'eccezione restituita non dovrebbe dire "The system cannot find the path specified" ma "Access denied".

Il problema che riscontri è dovuto al fatto che la piattaforma non riconosce "c" come una radice del filesystem. Non vuol dire che "c" non ci sia: solo la piattaforma java non lo vede.

Prova a stampare un elenco delle radici del filesystem e vedi un po' cosa "vede" la tua tazza di caffè.

Codice:
import java.io.*;

public class Main {
	public static void main(String[] args) {
		File[] roots = File.listRoots();
		for(File f : roots) {
			System.out.println(f);
		}
	}
}
C'è c:\ ?
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 15:05   #6
cyberziz
Junior Member
 
Iscritto dal: Sep 2006
Messaggi: 9
@ PGI-Bis: il tuo ragionamento non fa una piega, effettivamente. L'eccezione genera il messaggio "Impossibile trovare il percorso specificato", il che dovrebbe essere inequivocabile...però eseguendo il tuo programmino, l'output prodotto è il seguente:


C:\
D:\
E:\
F:\
G:\
J:\


...ma la cosa ancora più allucinante, è che provando ad eseguire queste sole linee...


String path = "c:/prova";
File folder = new File(path);
folder.mkdir();


la cartella "prova" viene correttamente creata in c:\!! Il mistero si infittisce...
cyberziz è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 15:43   #7
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Sforiamo nella magia nera qui .

Adesso dico una cosa che non sta nè in cielo nè in terra, ma visto che siamo alle strette...

Nel codice che hai incollato inizialmente il percorso era:

"C:\\prova.txt"

con la C maiuscola.

Il tuo test successivo dice che trova la cartella:

"c:/prova"

con la c minuscola. Se cambi il nome del file da:

"C:\\prova.txt"

a

"c:\\prova.txt"

che succede?

Potrebbe essere un problema di codifica del codice sorgente? Una cosa bizzarrissima: la lettera "c" che appare come una c nel sorgente e appare come una c nell'output su console (prova con un System.out.println(file.getPath()) in realtà non è una C!

Avrebbe un senso: se provate a scrivere un file usando una root inesistente capiterà proprio l'eccezione "Impossibile trovare il file specificato".

Certo è una cosa inquietante
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 16:26   #8
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Resta il fatto che da me il codice di cyberziz funziona benissimo.

@cyberziz: hai provato a scrivere in un altro path es. "C:\\TEMP\\prova.txt" (ovviamente la cartella ci deve essere)?? Quale versione di java usi (fai java -version)?? Hai provato a compilare/avviare il programmino al di fuori di JBuilder?
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 16:33   #9
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Quote:
Originariamente inviato da andbin
Resta il fatto che da me il codice di cyberziz funziona benissimo.
Anche a me. D'altronde il codice che ha scritto mi pare ineccepibile. Non dovrebbe esserci differenza tra c e C perchè in windows i percorsi non sono sensibili alla capitalizzazione (credo).
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2006, 17:37   #10
cyberziz
Junior Member
 
Iscritto dal: Sep 2006
Messaggi: 9
...ora funziona anche a me!

Dunque il mio problema partiva da tutt'altro punto: una servlet doveva salvare dei file uploadati con una richiesta http. Provando a creare un percorso attualmente inesistente, si generava l'eccezione. Così ho creato quel piccolo programma di cui sopra per capire il motivo dell'errore. Quando ho postato il codice, non ho badato se il percorso contenesse o meno cartelle, non lo consideravo un problema...in pratica non avevo provato mai con C:\file, finché non ho provato i vostri suggerimenti esattamente come li avete postati!! Avevo sempre una cartella di mezzo, che era inesistente: pensavo che FileOutputStream o FileWriter facessero tutti i controlli del caso, e creassero il percorso fino al file, se inesistente...invece l'operazione deve essere eseguita a mano con mkdirs()...ad ogni modo senza i vostri suggerimenti non ci avrei mai pensato! Quindi vi ringrazio e mi scuso per il tempo che vi ho fatto perdere...
cyberziz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Anthropic e Salesforce annunciano l'inte...
Ricoh GR IVx: annunciata la compatta da ...
I consumatori non sarebbero interessati ...
Cybersecurity: come si sono mossi gli AP...
I giochi digitali non sono di proprietà ...
Photoshop ha una seconda interfaccia: se...
Samsung Galaxy S27 si mostra nei primi r...
Celle solari tandem perovskite-silicio a...
Pneumatici Continental con il 43% di mat...
Meta: la Polonia chiede alla Commissione...
LEGO Skylines arriva da Paradox e Icefla...
1100 Hz su un monitor: Samsung supera un...
Plaud One è il nuovo wearable AI ...
ESA vuole espandere le capacità d...
Le auto di Xiaomi arrivano da noi nel 20...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v