Newsgroup: it.comp.java
Titolo: problemi con servlet che riceve dati e li scrive su disco

Sto realizzando una servlet che prende due dati (ad esempio nome e
cognome) da un form in html e li scrive in un rigo di un file di testo
(file flat). Dovrebbe essere poi possibile fare modifiche e aggiunte e
visualizzare i dati in ordine. 
Ho realizzato ciò in php e dopo un pò di lavoro tutto funziona bene.
Ora devo fare la stessa cosa in java ma mi sembra tutto impossibile:
1) tanto per cominciare scrivo i dati su disco e non scrive caratteri
(penso per la codifica unicode); 
2)gli dico di fare una seek nel file aperto, ma seek prende come
parametro un byte (praticamente non so che scrivere per leggere un
rigo dopo un altro).
3) non ho idea di come si scriva un "a capo" (\n ?)
4) non so come visualizzare ordinati i record (ad esempio) per nome
(nel senso che non so che algoritmo usare).
Penso che tutti questi problemi siano generati dall'enorme
flessibilità di java per cui uno stream può essere qualsiasi cosa (da
un file in rete, a un file locale, a una parte di memoria).
Avete qualche esempio (breve) che mi possa fare da guida, qualche
articolo da consigliarmi (che non sia dipersivo), o almeno rispondere
a uno dei dubbi sopra?
Grazie
--
     Good luck!              
un...@softhome.net
     ADaM        
http://digilander.iol.it/unno2/
If debugging is the process of removing bugs,
then programming must be the process of putting them in.
(Dijkstra)

 flessibilitŕ di java per cui uno stream puň essere qualsiasi cosa (da


ma non fai prima ad usare un database con una tabella nome e cognome?

righe
Io ho scritto:
 RandomAccessFile dati = new RandomAccessFile("c://dat", "rw");
 dati.writeChars(nome.concat(cognome));
e lui nel file dat scrive:
 n o m e C o g n o m e
A me quegli spazi non servono. Inoltre mi serve:
1) scrivere un "a capo" alla fine;
2) scrivere la seconda riga sul rigo successivo
3) fare una ricerca (e inserimento) binaria: quindi essere capace di
andare e analizzare il rigo che sta a metà del file.
4) Non ho capito come si usa la seek. Se gli voglio dire "vai a
leggere 5 byte cominciando dal ventesimo" come si fa?
5) Come si sposta il puntatore nel file per scrivere un carattere in
una determinata posizione?
Grazie ancora per le risposte.
P.S.
Queste domanda dovrebbero essere tutte ovvie se uno deve trattare
l'I/O su file, ma nei tutorial, si fanno esempi banali (come leggere
l'intero file) e non si usano tutte le funzioni ma solo read e write.
Se avete qualche esempio che faccia queste cose o un tutorial che
spiega come farlo vi sarei grato.


ma non fai prima ad usare un database con una tabella nome e cognome?
Certo!, ma cosě sarebbe un altro esame :-)))
Devo usare purtroppo le funzioni di input/output su file e ho visto
che i tutorial non le spiegano bene e, per l'alto livello di
astrazione, non sono facili da usare.
Se sei ingrado di rispondere alle domande con cui ho rispoto al
gentile Giuseppe, te ne sarei grato.


 l'intero file) e non si usano tutte le funzioni ma solo read e write.
Si, ma basta dare una lettura alle descrizioni dei metodi per capire cosa possono
fare, e non ci vuole più di 5 minuti.
Ciao,
 Stefano
----------
"X WindowSSS, teSSSoro mio... lo odieremo per SSSempre"
Bill Gollum
----------

5) Come si sposta il puntatore nel file per scrivere un carattere in
Idem (sempre con la solita seek).


gentile Giuseppe, te ne sarei grato.
Come puoi vedere dal post sopra qualche problema l'ho risolto. Certo
se mi dici come si può scrivere in ascii, mi soddisfi questa curiosità
:-)


fare, e non ci vuole più di 5 minuti.
Dì la verità, da quanto tempo lavori con la programmazione ad oggetti?
:-) Per i pivelli che imparano oggi, i vostri "eredi" professionali,
un buon tutorial completo è utilissimo, altrimenti non staremo qui ad
imparare ma staremo già a produrre.


sempre fatto accapponare la pelle :) Chiedi scusa per la mia ignioranza sull'itagliano :)
Figurati, almeno qui si può scherzare senza che nessuno se la prenda.
