PDA

View Full Version : [java] perchè non va a capo?


thefrog
06-07-2004, 16:00
ho questo codice che usa la java.io.RandomAccessFile

public void AddInFiles(Cd el) {
/*metodo che inserisce nel file un record*/
try{
RandomAccessFile file;
file = new RandomAccessFile("Input.txt","rw");
file.seek(file.length());
file.writeBytes(el.AUTORE+", "+el.TITOLO+", "+el.CASA_DISC+", "+el.ANNO+"\n");
file.close();
}
catch(IOException e){System.out.println("Error");}
}

non capisco perchè con il /n non va a capo....

mi gerenra questo output sul file:

iron maiden, album 1, sony, 1999 [] madonna, album 2, ddddd, 1888 [] peppe, pappa, puppu, 1989

le quadre simboleggiano un quadratino mentre io vorrei che l'autput fosse questo

iron maiden, album 1, sony, 1999
madonna, album 2, ddddd, 1888
peppe, pappa, puppu, 1989


cosa c'è che non va?
(poi tra l'altro se copio e incollo l'output con i quadratini sul dforum va a capo...non capisco)

cn73
06-07-2004, 16:19
lo "\n" indica il line feed, devi farlo precedere da un acarriage return "\r"...hai presente il movimento che facevi con la macchina da scrivere?? Prima facevi tornare indietro il carrello, poi giravi il rullino per andare a capo...

Cmq con notepad vedi uhn quadratino, con editor più sofisticati lo \n è interpretato come un a capo...

recoil
06-07-2004, 16:37
confermo, ci vuole lo \r anche se con la maggior parte degli editor il problema non sussiste :)

cn73 ha fatto un ottimo paragone, come si stava bene quando c'erano le macchine da scrivere :D

cn73
06-07-2004, 16:44
Il termine "carriage return" significa proprio "ritorno di carrello" ;)

thefrog
06-07-2004, 16:51
ok \r\n funziona :) grazie

ragazzi ma perchè dalle altre parti mi ha sempre funzionato senza /r?

forse qui non funziona perchè stò lavorando su un file e non su semplice output a schermo?

mi piacerebbe capire così la prossima volta evito di rifare quest'errore

cn73
06-07-2004, 17:01
Ti è stato detto... certi editor di testo poco sofisticati necessitano di entrambi...io conosco solo notepad :D

thefrog
06-07-2004, 17:08
Originariamente inviato da cn73
Ti è stato detto... certi editor di testo poco sofisticati necessitano di entrambi...io conosco solo notepad :D

no no...hai frainteso...io non uso notepad come editor ma solo per visualizzare il file .txt che mi crea il programma

il codice che viene scritto secondo me è proprio con il quadrato perchè per scrivere il codice uso Jcreator e in tutti gli altri casi ha funzionato con \n solo stavolta non va?

perchè uso un file?
per una proprietà RandomAccessFile?

opure sono duro duro di testa e la cosa giusta è quella che hai detto te ma non lo capisco :sofico:

Mazza2
07-07-2004, 08:58
Originariamente inviato da recoil

come si stava bene quando c'erano le macchine da scrivere :D


gia' e aggiungo: "si stava meglio quando si stava peggio ":sofico:

kingv
07-07-2004, 09:00
Originariamente inviato da thefrog

per una proprietà RandomAccessFile?




probabilmente le altre volte avrai usato un PrintWriter e chiamando println() ci mette lui il ritorno a capo giusto ;)

cn73
07-07-2004, 09:09
Che centra l'editor on cui scrivi il programma?? ;)
Io parlavo dell'editor con cui visualizzi il file di testo...aprilo con ultraedit ad esempio...vedrai l'a capo anche col solo \n.

thefrog
07-07-2004, 09:15
Originariamente inviato da kingv
probabilmente le altre volte avrai usato un PrintWriter e chiamando println() ci mette lui il ritorno a capo giusto ;)

sinceramente mi pareva che funzionasse anche con print() [senza ln] :what: