Newsgroup: it.comp.java
Titolo: problemi con lettura e scrittura file su file .txt

salve a tutti!!!
ho i seguenti problemi.
1) devo scrivere su un file di testo un vettore di 10 elementi di tipo
float; come posso fare per scriverli sulla stessa riga e separarli con
uno spazio l'uno dall'altro?
2) come posso cancellare completamente il contenuto di un file txt
dopo aver effettuato l'operazione di lettura/scrittura desiderata
(ovviamente sincronizzando opportunamente le operazioni)?
grazie mille!
giulio
 
-- 
"show me a sign to a life that shines
one direction into another sheltered peace of mind"
                               skid row
--
gpe...@BLAHlibero.it
rimuovi BLAH per rispondermi
   - God Bless -

                                skid row
1)Prova:
float[] F = new float[3];
  F[0]=0; F[1]=1; F[2]=2;
String minni =" ";
String pippo = null;
for (int i=0; i<3; i++)
     minni=minni+" "+F[i];
PrintWriter   out = new PrintWriter(new BufferedWriter(new
FileWriter("prova.prova")));
out.println(minni);		
out.close();
2)Prova:
String minni =" ";
PrintWriter   out = new PrintWriter(new BufferedWriter(new
FileWriter("prova.prova")));
out.println(minni);		
out.close();
Ciao.

On 2 Sep 2003 07:29:17 -0700, 
cinziab...@tiscali.it
 wrote:
[cut]
ok, grazie mille per i consigli e già che ci siamo ti chiedo un'altra
consulenza :-)
io lavoro momentaneamente sotto winXP (almeno fino alla prox
settimana): come faccio a passare il path di un file di testo, ad
esempio c:\giulio\directory\fileditest.txt per creare un
FileInputStream?
non dovrei fare:
FileInputStream fis = new FileInputStream("
c:\giulio\directory\fileditest.txt");
???
ave
giulio
p.s. grazie...
-- 
"show me a sign to a life that shines
one direction into another sheltered peace of mind"
                               skid row



leggi qua (DOCUMENTAZIONE pubblicata da Sun e LIBERAMENTE SCARICABILE)
http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileInputStream.html#FileInputStream(java.lang.String)
è tutto un link (anche quello che c'è tra parentesi).
La documentazione, ragazzi! leggete la benedittissima documentazione!
--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)

benedittissima
ufff i miei soliti lapsus... volevo dire benedEttissima...
e scusate se sono pignolo


La documentazione, ragazzi! leggete la benedittissima documentazione!
letta, ma non spiega il perchč sotto linux fili tutto liscissimo e
sotto win č un casino globale.
tu sapresti rispondere alla mia domanda?
ave
giulio



--------------------------------
Inviato via 
http://usenet.libero.it

1)Prova:
[cut]
ok, ho provato ma mi riporta (come al solito) la seguqnte eccezione:
testsufile/StampaVettore.java [31:1] unreported exception
java.io.IOException; must be caught or declared to be thrown
PrintWriter   out = new PrintWriter(new BufferedWriter(new
FileWriter("filescrittura")));
 
1 error
Errors compiling StampaVettore.
come mai?
ciao!
giulio
-- 
"show me a sign to a life that shines
one direction into another sheltered peace of mind"
                               skid row


tu sapresti rispondere alla mia domanda?
Ho capito cosa intendi. All'inizio ero cascato pure io in questa
piccolissima particolarità. Tu per costruire il FileInputStream hai
usato:
FileInputStream fis =
  new FileInputStream("c:\giulio\directory\fileditest.txt");
giusto? ma "\" oltre a essere il separatore dei componenti del path
sotto windows, è anche il carattere che sotto Java introduce ad una
sequenza di escape...
FileInputStream fis =
  new FileInputStream("c:\\giulio\\directory\\fileditest.txt");
In questo modo quando il compilatore passa a compilare la stringa,
ogni "\\" viene memorizzato come "\".
Una piccola nota: ti conviene non utilizzare percorsi diretti nelle
stringhe che inserisci nel codice sorgente. Cerca per quanto possibile
di usare la classe File. Lo so, è più scomodo, ma è più portatile. Poi
decidi te come fare. Ti faccio un paio di esempi:
FileInputStream fis =
  new FileInputStream("c:" + File.separator +
                      "giulio" + File.separator +
                      "directory" + File.separator +
                      "fileditest.txt");
o ancora meglio
File filespec = new File(
                  new File(
                    new File(
                      File.listRoots()[0],"giulio"
                    ),"directory"
                  ),"fileditest.txt"
                );
FileInputStream fis = new FileInputStream(filespec);
In particolare il secondo esempio può essere eseguito senza nessuna
modifica sia su linux, sia su windows, sia su Mac: in linux/unix
l'oggetto filespec si riferirà al file
  /giulio/directory/fileditest.txt
su Windows invece
  a:\giulio\directory\fileditest.txt
e infine su Mac
  <primo volume valido>:giulio:directory:fileditest.txt
Su linux non hai il problema dei filesystem multipli, dato che c'è
sempre e solo una "root". Su Windows e Mac sappiamo che ogni
dispositivo/partizione/unità di rete è una root a sè stante, quindi
dovrai stabilire a priori qual'è l'indice in listRoots() che si
riferisce al filesystem corretto (tramite una costante predefinita se
sei in debug o file di configurazione ad applicazione conclusa).
Spero di esserti stato utile. Se ho scritto qualche vaccata dimmelo
pure senza farti troppi problemi ;)


java.io.IOException; must be caught or declared to be thrown
Ok ho capito il tuo problema.
Il compilatore ti sta dicendo che l'istruzione
PrintWriter out =
  new PrintWriter(new BufferedWriter(new FileWriter("prova.prova")));
*potrebbe* fallire, e tu, o meglio, la tua applicazione *deve* essere
preparata a gestire l'eventuale errore. Faresti meglio a rivedere sul
tuo manuale (ne hai uno, VERO?!?!) il costrutto try/catch - è una
delle prime cose che si imparano con Java.


                                skid row
PIU SEMPLICE:
  "c:/giulio/directory/fileditest.txt"
ci pensa java a cambiare gli / .
Ciao Cinzia

ci pensa java a cambiare gli / .
che dire?
grazie e W JAVA che ci fa il lavoro!!!
giulio
-- 
"show me a sign to a life that shines
one direction into another sheltered peace of mind"
                               skid row


decidi te come fare. Ti faccio un paio di esempi:
già, e in linea generale lo farò, ma questa era una prova spicciola
per cercare di capire come funziona 'sto cacchio di I/O in java
(mammamia che macello!!!)
grazie mille per il consiglio!


delle prime cose che si imparano con Java.
fatto ma non funge.
a braccio (non ricordo quello che ho scritto in dettaglio) la cosa
dovrebbe suonare del tipo:
try {
	PrintWriter out =  new PrintWriter(new BufferedWriter(new
FileWriter("prova.prova")));
}
catch (FileNotFoundException fnfe) {
	//blablabla
}
ma anche sostituendo le righe la cosa non funge.


ma anche sostituendo le righe la cosa non funge.
FileNotFoundException è una sottoclasse di IOException, possono sempre
capitare altri errori *diversi* da "File Not Found", ma che ricadono
sempre nella generalizzazione IOException (ad esempio
SyncFailedException, EOFException...). Il metodo migliore secondo me:
try {
  ...
} catch (FileNotFoundException ex1) {
  //Gestisci il "file not found"
} catch (IOException ex2) {
  //Gestisci tutti gli altri errori della categoria IOException


 FileWriter("filescrittura")));
  }catch(Exception e){}
  ciao e studia


1)
se devi fare 1 file in append :
PrintWriter f =new PrintWriter (new FileWriter ("c:\\out.txt",true),true);
considenrando che hai già 1 vettore caricato dovresti fare così:
float [10] flo;
for (int i=0;i<10;i++)
f.write (flo[i]+" ");
f.write ("\n"); // per portare a caporiga
2)
prova a utilizzare il tipo File:
File file =new File ("c:\\out.txt");
e poi fai 1 delete file.delete();
così te lo elimina dal File System
se poi ci devi lavorare ancora sopra basta che lo dichiari nuovamente come
scritto sopra.


 
Devi dichiarare che tipo di eccezzioni il metodo deve sollevare,
se prova č il tuo metodo dove scrivi, o leggi il file devi scrivere:
public void prova() throws IOException
{

 
Devi dichiarare che tipo di eccezioni il metodo deve sollevare,
se prova č il tuo metodo dove scrivi, o leggi il file devi scrivere:
public void prova() throws IOException
{............
Poi la try la puoi anche non mettere, 
vuol dire che il tuo programma non gestisce l'eccezione, va avanti e tanti saluti.
Ciao Cinzia