Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
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


ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
EmuDeck si dichiara pronta per Steam Mac...
Addio spandex non riciclabile: ecco il n...
Samsung Galaxy Book6 a 999€: portatile d...
NVIDIA pronta a tagliare la capacit&agra...
Amazon chiede all'FCC 5.105 satelliti pe...
Galaxy S27 Ultra dovrebbe costare di pi&...
La Cina accelera sull'autonomia nei macc...
Ora è ufficiale, Google aumenterà i pre...
Il sito russo di cui Andrea Pirlo &egrav...
CXMT debutta in Borsa con un +466%, il f...
Redmi Note 17, un leak anticipa i prezzi...
TIMVISION con DAZN e Prime: la Serie A r...
Le chat di Claude finiscono su Google, e...
WINDTRE, le offerte di fine luglio: 5G F...
Due scrivanie angolari gaming a prezzi b...
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: 08:25.


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