PDA

View Full Version : in java salvataggio di una stringa su file


diegof83
30-05-2006, 16:56
ciao a tutti, dovrei fare un programma in java che, una volta inserita una stringa dall'utente mi salvi questa stringa in un file. qualcuno mi può dare una mano? grazie a tutti.... ciao ciao...

franksisca
30-05-2006, 19:16
cerca sul forum stesso la scrittura su file, altrimenti devi usare la classe printwriter.

diegof83
31-05-2006, 08:21
ho cercato sul forum ma non c'è niente che mi spieghi bene....
siccome sono un principiante, come si usa la classe printwriter?
grazie e scusa la mia ignoranza!!!

andbin
31-05-2006, 08:33
ho cercato sul forum ma non c'è niente che mi spieghi bene....
siccome sono un principiante, come si usa la classe printwriter?
grazie e scusa la mia ignoranza!!!Esempio:
import java.io.*;

...

try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("pippo.txt"));

pw.println ("Ciao, stringa di testo");
pw.close ();
}
catch (Exception e)
{
e.printStackTrace ();
}Solo una nota finale: il codice funziona con qualunque versione di Java. A partire da Java 5, esiste un costruttore di PrintWriter che accetta direttamente il nome di file, quindi il new FileOutputStream si potrebbe evitare.

diegof83
31-05-2006, 08:57
ok ti ringrazio. pero "approfitto" della tua conoscenza per chiederti un altro paio di cose:
- in questo modo mi genera un file di testo di nome pippo?
- seconda cosa: molto banale ma ho appena installato java sul mio pc: riesco a compilare col comando javac, mi crea la classe ad esempio pluto.class solo che al momento del lancio con il comando java pluto mi da il seguente errore:
Exception in thread "main" java.lang.NoClassDefFoundError: pluto
cosa devo fare? grazie ancora....

andbin
31-05-2006, 09:11
- in questo modo mi genera un file di testo di nome pippo?Sì, "pippo.txt".

- seconda cosa: molto banale ma ho appena installato java sul mio pc: riesco a compilare col comando javac, mi crea la classe ad esempio pluto.class solo che al momento del lancio con il comando java pluto mi da il seguente errore:
Exception in thread "main" java.lang.NoClassDefFoundError: pluto
cosa devo fare? grazie ancora....Hai un CLASSPATH impostato?? Verifica che ci sia il "punto" (.) che indica la directory corrente.

diegof83
31-05-2006, 09:14
scusami dove deve essereil punto? cosa sarebbe il classpath?

andbin
31-05-2006, 09:20
scusami dove deve essereil punto? cosa sarebbe il classpath?Il CLASSPATH è l'elenco dei path che Java usa per cercare le classi (ma anche eventualmente altri file).

-> Setting the class path (http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html)

diegof83
31-05-2006, 09:26
ok, finalmente ce l'ho fatta.... se ho problemi con il salvataggio su file (cosa molto probabile) ti rompero ancora le scatole...
ah ecco unaltra, l'ennesima domanda: dove posso trovare la classe SavitchIn?

andbin
31-05-2006, 09:34
dove posso trovare la classe SavitchIn?Uhm ... 'sta classe l'ho già sentita parecchie volte sul forum. Se ho capito bene, è una classe per gestire l'I/O su console. Usa google, molto probabilmente la trovi. ;)

diegof83
31-05-2006, 09:36
si,gestisce gli input\output.... già trovata...grazie....
sono ancora io.... ascolta nel programmino mi viene passata una stringa, che se è nulla devo generare un'eccezione, mentre se non è nulla devo inserirla nel file. il programma ha l'ossaturadi quello che mi hai passato precedentemente ed è questo:
import java.io.*;

public class inser
{
public static void main (String[] args)

try
{
String c;
PrintWriter pw = new PrintWriter (new FileOutputStream ("pippo.txt"));
System.out.println ("dammi la tua stringa da inserire nel file");
c=SavitchIn.readLine();
pw.println (c);
pw.close ();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}

come posso modificarlo in maniera tale che mi faccia le cose che ho richiesto?
grazie....

andbin
31-05-2006, 10:00
che se è nullaCosa intendi per nulla??? Proprio null oppure ""?? Ho preso anch'io 'sta classe: readLine restituisce sempre una stringa valida.

devo generare un'eccezioneQuale eccezione??? Una di quelle di Java (es. IllegalArgumentException) o devi creare tu una nuova eccezione??

diegof83
31-05-2006, 10:03
1) sia nulla che la stringa vuota... questopenso che sia trattabile con un controllo if con un or dentro
2) dovrei crearla io un eccezione,ma nn so molto di piu, il mio capo mi ha detto cosi...

andbin
31-05-2006, 10:08
1) sia nulla che la stringa vuota... questopenso che sia trattabile con un controllo if con un or dentroDa quello che ho visto, readLine() non ritorna mai null, al massimo una stringa vuota "".

2) dovrei crearla io un eccezione,ma nn so molto di piu, il mio capo mi ha detto cosi...Devi creare una nuova classe derivandola da Exception. In genere basta mettere 2 costruttori: quello no-arg e quello con Stringa messaggio.

diegof83
31-05-2006, 10:11
e la classe exception dove la vado a prendere?

andbin
31-05-2006, 10:16
e la classe exception dove la vado a prendere?Exception fa parte del framework di Java è nel package java.lang.

http://www.mokabyte.it/2003/10/corsojava-16.htm

diegof83
31-05-2006, 10:32
import java.io.*;


public class inser throws ErroreStringaVuota
{
public static void main (String[] args)
{
String str = "ciao";
if (str != "")
{
try
{
String c;
//PrintWriter pw = new PrintWriter (new FileOutputStream ("pippo.txt"));
//System.out.println ("dammi la tua stringa da inserire nel file");
c=SavitchIn.readLine();
pw.println (str);
pw.close ();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
throw new ErroreStringaVuota();
}
}
}

public class ErroreStringaVuota extends Exception
{
ErroreStringaVuota()
{
super("Attenzione, stai riferendo una stringa non inizializzata");
}
}
}

mi da un errore di compilazione:inser.java:4:'{'expected
public class inser throws ErroreStringaVuota....

andbin
31-05-2006, 10:42
mi da un errore di compilazione:inser.java:4:'{'expected
public class inser throws ErroreStringaVuota....Occhio:
1) se hai scritto tutto quanto in 1 solo sorgente, solamente una classe può essere public.
2) credo che ci siano dei casini con le graffe.
3) il throws lo applichi a costruttori e metodi, non alle classi.
4) perché testi str??? non dovresti testare quanto restituito da readLine()???

diegof83
31-05-2006, 11:10
import java.io.*;

public class inser throws errorestringa
{
public static void main (String[] args)
{
try
{
String c;
PrintWriter pw = new PrintWriter (new FileOutputStream ("pippo.txt"));
System.out.println ("dammi la tua stringa da inserire nel file");
c=SavitchIn.readLine();
if (c != "")
{
pw.println (c);
pw.close ();
}
else
throw new errorestringa;
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}

{
class errorestringa extends Exception
{
errorestringa()
{
super ("attenzione");
}
}
}

ioho messo a posto tutto parantesi e tutto quello che mi avevi detto ma mi da sempre sto maledetto errore '{' expected
public class inser throws errorestringa
^

andbin
31-05-2006, 11:21
ioho messo a posto tutto parantesi e tutto quello che mi avevi detto ma mi da sempre sto maledetto errore '{' expected
public class inser throws errorestringa
^No, throws NON lo applichi alle classi!

Ecco il codice corretto (in rosso cosa ho corretto):
import java.io.*;

public class inser
{
public static void main (String[] args)
{
try
{
String c;
PrintWriter pw = new PrintWriter (new FileOutputStream ("pippo.txt"));
System.out.println ("dammi la tua stringa da inserire nel file");
c=SavitchIn.readLine();
if (!c.equals (""))
{
pw.println (c);
pw.close ();
}
else
throw new errorestringa ();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}

class errorestringa extends Exception
{
errorestringa()
{
super ("attenzione");
}
}

diegof83
31-05-2006, 11:31
guarda non so cosa dirti: ora sto scolpendo una statua in tuo onore!!! sei la mia salvezza e già so che ti chiederò e ti ringrazierò altre migliaia di volte....
:D grazie mille ancora... a risentirci o addirittura a dopo...

diegof83
31-05-2006, 13:41
public class ooo
{
public static void main (String []args)
{
int c=4;
stampa (c);
}

void stampa (int d)
{
System.out.println(d);
}
}

sto provando a fare un po di metodi. provando questo semplice programma mi da un errore sulla linea stampa(c). cosa ho sbagliato?

niente, ho risolto...

andbin
31-05-2006, 13:49
public class ooo
{
public static void main (String []args)
{
int c=4;
stampa (c);
}

void stampa (int d)
{
System.out.println(d);
}
}

sto provando a fare un po di metodi. provando questo semplice programma mi da un errore sulla linea stampa(c). cosa ho sbagliato?main è un metodo statico mentre stampa non è statico. Non si può richiamare da un metodo statico un altro metodo non statico senza fare riferimento ad un oggetto. Nei metodi statici non c'è il "this".
Quindi metti stampa come static.

diegof83
31-05-2006, 14:45
per la prima volta in java sento parlare di system.getproperty.
sapreste dirmi cosa sia, a cosa sorva e soprattutto come si usa?
se ci ho capito qualcosa dovrebbe essere una funzione che mi trova una path per mettere il file su un determinato server a livello aziendale....

andbin
31-05-2006, 15:02
per la prima volta in java sento parlare di system.getproperty.
sapreste dirmi cosa sia, a cosa sorva e soprattutto come si usa?
se ci ho capito qualcosa dovrebbe essere una funzione che mi trova una path per mettere il file su un determinato server a livello aziendale....No ... l'ambiente di runtime mantiene in memoria una serie di informazioni (proprietà) nel formato chiave->valore.

System Properties (http://java.sun.com/docs/books/tutorial/essential/system/properties.html)

System.out.println (System.getProperty ("java.version"));Stampa ad esempio: 1.5.0_06

diegof83
31-05-2006, 15:23
ok,ma il mio capo mi ha detto di usare SystemgetProperty("log_dir")
che mi dovrebbe trovare il percorso x mettere il file sul server o qualcosadel genere...

andbin
31-05-2006, 15:40
ok,ma il mio capo mi ha detto di usare SystemgetProperty("log_dir")
che mi dovrebbe trovare il percorso x mettere il file sul server o qualcosadel genere...Ci sono tutta una serie di proprietà predefinite come "java.version", "os.name", ecc..., già caricate. Ma se ne possono aggiungere altre completamente custom, sia da codice Java che dall'esterno quando avvii l'applicazione.

Nel tuo caso "log_dir" non è certo una di quelle predefinite. Vuol dire che quando avvierai la tua applicazione, dovrai avviarla con:

java -Dlog_dir="bla bla" TuaClasse

(se non viene già impostata in qualche punto della tua applicazione, ovviamente!)

diegof83
31-05-2006, 15:58
java -Dlog_dir="bla bla" TuaClasse

e questo bla bla cosa sarebbe?

andbin
31-05-2006, 16:10
java -Dlog_dir="bla bla" TuaClasse

e questo bla bla cosa sarebbe?Quello che hai detto: "il percorso x mettere il file sul server o qualcosadel genere...".

diegof83
31-05-2006, 16:15
scusa ma continuo a non capire:
ma nono posso mettere System.getProperty("log.dir") all'interno del mio file con la classe e tutto il resto???

andbin
31-05-2006, 16:55
scusa ma continuo a non capire:
ma nono posso mettere System.getProperty("log.dir") all'interno del mio file con la classe e tutto il resto???Sì! ... ma quella proprietà "log_dir" dove ti viene impostata/passata??? Dalla riga di comando con il -D???

diegof83
31-05-2006, 16:59
ora me ne devo andare..... ti mandero una risposta domani mattina verso le 9. grazie ancora. ciao

diegof83
01-06-2006, 08:17
eccomi tornato....
stanotte pensando a questo pogramma mi è venuta in mente questa cosa:
io lavoro con il file pippo.txt. laprima volta lo creo normalmente, poi ogni volta che faccio partire ilprogramma me lo sovrascrive. come posso fare a chiedergli se esiste gia il file? c'è una procedura che mi restituisce un boolean a seconda del caso che esista meno questo file? cosi se esiste gli chiedo se vuole sovrascriverlo e roba del genere....
grazie...

andbin
01-06-2006, 08:30
io lavoro con il file pippo.txt. laprima volta lo creo normalmente, poi ogni volta che faccio partire ilprogramma me lo sovrascrive. come posso fare a chiedergli se esiste gia il file? c'è una procedura che mi restituisce un boolean a seconda del caso che esista meno questo file? cosi se esiste gli chiedo se vuole sovrascriverlo e roba del genere....
grazie...Beh, questo è abbastanza semplice:
File f = new File ("pippo.txt");

if (f.isFile ())
{
/* Il file esiste */
}

diegof83
01-06-2006, 08:52
import java.io.*;

public class pass5
{
public static void main (String[] args)
{
String c;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
inserisci(c);
}


public static void inserisci (String c)
{
{
File f= new File ("testa.txt");
if (!f.isFile())
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi sovrascrivere il file?s/n");
char risp;
risp=SavitchIn.readChar();
while ((risp!='s')||(risp!='n'))
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
}
if (risp=='s')
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}

}

}
}
}
class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}


QUI MI CREA IL FILE LA PRIMA VOLTA QUINDI QUANDO IL FILE NON ESISTE ED E' PERFETTO,UNA VOLTA CREATO IL FILE PERO' MI CHIEDE LA STRINGA DA INSERIRE E SE VOGLIO SOVRASCRIVERE IL FILE. IO RISPONDO S O N MA MI ENTRA IN UN CICLO INFINITO.....

andbin
01-06-2006, 09:11
do {
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
} while (risp!='s' && risp!='n');

P.S. posta il codice ben indentato, per cortesia.

diegof83
01-06-2006, 09:18
e come si fa?

andbin
01-06-2006, 09:20
e come si fa?Il tuo codice dovrebbe essere innanzitutto bene indentato (4 car. tipicamente) e poi lo posti all'interno del tag CODE.

diegof83
01-06-2006, 09:23
import java.io.*;
public class pass5
{
public static void main (String[] args)
{
String c;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
inserisci(c);
}


public static void inserisci (String c)
{
{
File f= new File ("testa.txt");
if (!f.isFile())
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi sovrascrivere il file?s/n");
char risp;
risp=SavitchIn.readChar();
while ((risp!='s')&& (risp!='n'))
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
}
if (risp=='s')
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}

}

}
}
}
class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}





non è indentato molto bene...comunque ho risolto un po di problemi.... l'unico che mi è rimasto è quando, dopo la richiesta se voglio sovbrascrivere il file mi stampa 3 o +volte se voglio sovrascrivere il file nel caso in cui inserisca una char diversa da s o n.
ULTERIORE DOMANDA:
se invece che sovrascrivere il file come posso a concatenare la stringa che mi inserisce al file già esistente????

andbin
01-06-2006, 10:00
non è indentato molto bene...comunque ho risolto un po di problemi.... l'unico che mi è rimasto è quando, dopo la richiesta se voglio sovbrascrivere il file mi stampa 3 o +volte se voglio sovrascrivere il file nel caso in cui inserisca una char diversa da s o n.Perché quella classe SavitchIn del kaiser non è proprio perfetta! SavitchIn.readChar() è vero che ti restituisce il carattere digitato ... ma è anche vero che te lo restituisce quando hai premuto invio, che su Windows equivale a CR+LF. Avendo fatto tu un loop, la readChar ritorna poi anche \r e poi \n.

ULTERIORE DOMANDA:
se invece che sovrascrivere il file come posso a concatenare la stringa che mi inserisce al file già esistente????Così:
BufferedWriter bw = new BufferedWriter (new FileWriter ("pippo.txt", true));
bw.write ("aggiungi");
bw.close ();Nota che il true nel costruttore di FileWriter indica appunto l'append.

diegof83
01-06-2006, 10:05
e come potreirimediare togliendo la savitchin????
devo importare qualche libreria per interagire con l'utente?


import java.io.*;

public class pass6
{
public static void main (String[] args)
{
String c;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
inserisci(c);
}


public static void inserisci (String c)
{
{

char risp,coda;
File f= new File ("testa.txt");
if (!f.isFile())
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi aggiungere in coda questa stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
while ((coda!='s') && (coda!='n'))
{
System.out.println("Vuoi aggiungere in coda questa stringa al file gia' esistente?s/n");
risp=SavitchIn.readChar();
}
if (coda == 's')
{
BufferedWriter bw = new BufferedWriter (new FileWriter ("stringa.txt", true));
bw.write (c);
bw.close ();
}
else
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
while ((risp!='s')&& (risp!='n'))
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
}
if (risp=='s')
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}

}
}
}
}

class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}





questo è il codice mi da errore nelle righe rosse dicendo cheè un'eccezione java.io.IOException...

andbin
01-06-2006, 10:28
e come potreirimediare togliendo la savitchin????
devo importare qualche libreria per interagire con l'utente?Questo non lo so ... appena ho tempo vedo di sviluppare io una piccola libreria che possa essere utile per fare del semplice I/O.

questo è il codice mi da errore nelle righe rosse dicendo cheè un'eccezione java.io.IOException...Beh, certo! Dove hai usato PrintWriter hai messo un blocco try/catch, idem devi fare nel punto in rosso.

diegof83
01-06-2006, 10:44
ora ho indentato tutto bene.
ascolta nel caso in cui io non ho il file, quindi lancio il programma per la prima volta, mi da' l'ecciezione ma il file me lo crea lo stesso e ovviamente è vuoto.... come posso evitare questo???


import java.io.*;

public class passtry
{
public static void main (String[] args)
{
String c;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
inserisci(c);
}


public static void inserisci (String c)
{
{
char risp;
char coda;
File f= new File ("testa.txt");
if (!f.isFile())
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
while ((coda != 's') && (coda != 'n'))
{
System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
}
if (coda == 's')
{
try
{
BufferedWriter bw = new BufferedWriter (new FileWriter ("testa.txt", true));
if ((!c.equals ("")) && (c != null))
{
bw.write (c);
bw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi sovrascrivere il file?");
risp=SavitchIn.readChar();
while ((risp!='s')&& (risp!='n'))
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risp=SavitchIn.readChar();
}
if (risp=='s')
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}
}
}
}
}

class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}





e poi QUANDO APPENDO IN CODA AL FILE GIA ESISTENTE ME LO METTE IN CODA, COME POSSO FARE A FARLO ANDARE A CAPO OGNI STRINGA CHE GLI FACCIO INSERIRE???

andbin
01-06-2006, 11:01
ascolta nel caso in cui io non ho il file, quindi lancio il programma per la prima volta, mi da' l'ecciezione ma il file me lo crea lo stesso e ovviamente è vuoto.... come posso evitare questo???A me non dà alcuna eccezione.

diegof83
01-06-2006, 11:04
scusa, mi sono espresso male. mi da l'ecciezione se inserisco una stringa vuota, come è giusto che sia, ma il file lo crea lo stesso.....

andbin
01-06-2006, 11:05
e poi QUANDO APPENDO IN CODA AL FILE GIA ESISTENTE ME LO METTE IN CODA, COME POSSO FARE A FARLO ANDARE A CAPO OGNI STRINGA CHE GLI FACCIO INSERIRE???Usi:
bw.newLine ();

andbin
01-06-2006, 11:20
scusa, mi sono espresso male. mi da l'ecciezione se inserisco una stringa vuota, come è giusto che sia, ma il file lo crea lo stesso.....Se non vuoi che il file venga creato se viene inserita una stringa vuota, basta che fai:
if ((!c.equals ("")) && (c != null))
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
pw.println (c);
pw.close ();
}

diegof83
01-06-2006, 11:41
import java.io.*;

public class passtry
{
public static void main (String[] args)
{
String c;
System.out.println ("dammi la stringa da inserire nel file");
c= SavitchIn.readLine();
inserisci(c);
}


public static void inserisci (String c)
{
{
char risposta;
char coda;
File f= new File ("testa.txt");
if (!f.isFile())
{
try
{
if ((!c.equals ("")) && (c != null))
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
while ((coda != 's') && (coda != 'n'))
{
System.out.println("Vuoi mettere in coda la stringa al file gia esistente?s/n");
coda=SavitchIn.readChar();
}
if (coda == 's')
{
try
{
BufferedWriter bw = new BufferedWriter (new FileWriter ("testa.txt", true));
if ((!c.equals ("")) && (c != null))
{
bw.write (c);
bw.newLine();
bw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
else
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risposta=SavitchIn.readChar();
while ((risposta != 's') && (risposta != 'n'));
{
System.out.println("Vuoi sovrascrivere il file?s/n");
risposta=SavitchIn.readChar();
}
if (risposta=='s')
{
try
{
PrintWriter pw = new PrintWriter (new FileOutputStream ("testa.txt"));
if ((!c.equals ("")) && (c != null))
{
pw.println (c);
pw.close ();
}
else
throw new errore_stringa();
}
catch (Exception e)
{
e.printStackTrace ();
}
}
}
}
}
}
}

class errore_stringa extends Exception
{
errore_stringa()
{
super ("La stringa che mi e' stata passata e' vuota");
}
}




ora se la stringa non la metto in coda ma sovrascrivo il file mi va in crash e si impasta....

diegof83
01-06-2006, 12:24
ho risolto.... ora il file lo creo in una cartella,ma questa cartella la devo creare manualmente. come posso creare la cartella in maniera tale da poterci salvare dentro il file senza per forza dover creare la cartella manualmente?

andbin
01-06-2006, 12:59
come posso creare la cartella in maniera tale da poterci salvare dentro il file senza per forza dover creare la cartella manualmente?File d = new File ("cartella");
d.mkdir ();
Scusa ... ma tu non la usi la documentazione delle API di Java???

diegof83
01-06-2006, 13:19
no,dove la posso trovare?

andbin
01-06-2006, 14:06
no,dove la posso trovare? ;) On-line è <qui> (http://java.sun.com/j2se/1.5.0/docs/index.html). Scaricabile <qui> (http://java.sun.com/j2se/1.5.0/download.jsp)

diegof83
01-06-2006, 14:30
ok,grazie....
ci sentiamo nei prossimi giorni o addirittura nelle prossime ore....
ciao

diegof83
01-06-2006, 14:52
ecco sono di nuovo qua.
ognivolta che eseguo cmd devo fare set classpath= percorso dove c'è la cartella col file da compilare. come posso evitarmi tutto questo sbattimento ogni volta???

andbin
01-06-2006, 15:09
ecco sono di nuovo qua.
ognivolta che eseguo cmd devo fare set classpath= percorso dove c'è la cartella col file da compilare. come posso evitarmi tutto questo sbattimento ogni volta???Su Win2000/XP: Pannello di Controllo / Sistema / Avanzate / Variabili d'ambiente.

diegof83
01-06-2006, 15:15
variabili di sistema o variabili dell'utente?
nn posso mettere un perocorso tipo c che cosi ovunque salvo compila?

andbin
01-06-2006, 15:28
variabili di sistema o variabili dell'utente?
nn posso mettere un perocorso tipo c che cosi ovunque salvo compila?Io il CLASSPATH lo metto in genere in quelle di sistema.

diegof83
01-06-2006, 15:49
ok, grazie, a posto...

diegof83
12-06-2006, 10:37
ciao,devo usare la libreria log4j, sai dirmi cosa sia????
grazie

andbin
12-06-2006, 10:55
ciao,devo usare la libreria log4j, sai dirmi cosa sia????
grazieNon l'ho mai usata ma so che è una libreria per gestire il logging, in pratica per poter scrivere informazioni di log.
http://logging.apache.org/log4j/