[TOPIC DA CANCELLARE] Java DataInputStream / DataOutputStream

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

[TOPIC DA CANCELLARE] Java DataInputStream / DataOutputStream

Messaggio da daemon_nio »

Sembravano due classi semplicissime, invece mi stanno dando problemi noiosi.

Ciò che mi serve è inviare un file binario da client a server utilizzando un WebService.
Quindi leggere un file, inserirlo in un file XML e passarlo da un capo all'altro, estrarlo e salvarlo. Il problema centrale sembra risolto, rimane solo quello della lettura e scrittura di un file. Come farla?

Possibile che non riesco a leggere un file e salvarlo?

Spiego il problema:

Il file DEVO leggerlo assolutamente con il metodo read(byte[]) della classe DataInputStream quindi con codice:

Codice: Seleziona tutto

byte fData[] = new byte[(int)length];
DataInputStream dis = new DataInputStream(new FileInputStream(this.path));
dis.read(fData);
Ora quando vado ad applicare il metodo inverso write(byte[]) della classe DataOutpuStream con questo codice:

Codice: Seleziona tutto

DataOutputStream dos = new DataOutputStream(new FileOutputStream(nomeFile));
dos.write(fData);
ottengo un file molto più lungo di quello iniziale, ma se confrontato con hexedit molto simile.

Dopo un po' di sbattimenti di testa ho letto questa 'cosetta' nell'interfaccia di DataInput.

Ossia in fase di lettura alcuni caratteri non vengono letti su un solo byte ma su più byte (due o anche tre) a causa della codifica UTF-8.
Okay mi sta benissimo, ma poi mi piacerebbe che in fase di scrittura avvenisse l'esatto contrario che non avviene spiegando il motivo del file molto più lungo.

Domanda: Come posso salvare una stringa di byte seguendo gli stessi accorgimenti che sono stati usati in fase di lettura?
Ultima modifica di daemon_nio il domenica 7 settembre 2008, 14:05, modificato 1 volta in totale.
Sempre costruendo qualcosa di nuovo: Matag: The Game
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

[Da cancellare] Re: Java DataInputStream / DataOutputStream

Messaggio da daemon_nio »

Perdonatemi ho scritto un topics da cancellare.

L'errore non è nelle funzioni di lettura e scrittura dei files, ma nella mia codifica/decodifica che credevo funzionasse.
Quindi le stringhe di byte che passo da client a server sono diverse, è per questo che i files sono diversi.

Quindi il problema si è spostato tutto in un altro punto, devo riorganizzare però un po' le idee. Può darsi che risolva da solo (anche se mi manca molta teoria) oppure che mi ritroverete nuovamente su questo forum.

Grazie comunque
Sempre costruendo qualcosa di nuovo: Matag: The Game
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti