| View previous topic :: View next topic |
| Author |
Message |
Gioacchino Guest
|
Posted: Sat Dec 17, 2005 11:26 am Post subject: Limite nel trasferimento file |
|
|
Se si alloca un'array di byte di dimensione pari alla dimensione del
file che si vuole trasferire esiste un limite fissato dal Java oppure
dipende dalla quantità di memoria disponibile al momento
dell'esecuzione?
L'unico modo rimane quello di trasferire pezzo per pezzo?
Per trasferire via socket un file grande, esiste una classe in Java
che faccia questo lavoro autonomamente?
Una classe del tipo:
TrasferisciFile tf = new TrasferisciFile(ServerSocket server, Socket
client, String nomedelfile);
try
{
tf.iniziatrasferimento();
}
catch(IoException e)
{
//Si è sollevato un errore nel trasferimento
}
|
|
| Back to top |
|
 |
Giambo Guest
|
Posted: Sat Dec 17, 2005 1:19 pm Post subject: Re: Limite nel trasferimento file |
|
|
Gioacchino wrote:
| Quote: | Se si alloca un'array di byte di dimensione pari alla dimensione del
file che si vuole trasferire esiste un limite fissato dal Java oppure
dipende dalla quantità di memoria disponibile al momento
dell'esecuzione?
|
IMHO, il tuo approccio e' sbagliato. Io userei un gli
Input/OutputStream. Magari bufferizzati.
--
Giambo - Occhio al filtro antispam _e_ alla whitelist !
|
|
| Back to top |
|
 |
stefanomnn@yahoo.it Guest
|
Posted: Sat Dec 17, 2005 2:03 pm Post subject: Re: Limite nel trasferimento file |
|
|
Esistono classi gia fatte, ma solo se usi protocolli standard!
Ad esempio se x il trasferimento dei file usi ftp allora sicuramente
potrai avvalerti delle API java.
I dati li puoi prendere N bytes alla volta, poi di questi N byte ne fai
cio che vuoi, es. li salvi in un file di output.
Spero di averti aiutato
|
|
| Back to top |
|
 |
Gioacchino Guest
|
Posted: Sat Dec 17, 2005 5:41 pm Post subject: Re: Limite nel trasferimento file |
|
|
Il giorno Sat, 17 Dec 2005 14:19:57 +0100, Giambo
<gabriele (AT) giambonini (DOT) nospam.com> scrisse:
| Quote: | Gioacchino wrote:
Se si alloca un'array di byte di dimensione pari alla dimensione del
file che si vuole trasferire esiste un limite fissato dal Java oppure
dipende dalla quantità di memoria disponibile al momento
dell'esecuzione?
IMHO, il tuo approccio e' sbagliato. Io userei un gli
Input/OutputStream. Magari bufferizzati.
Ovviamente ma se faccio qualcosa del genere: |
Ho un array lungo quanto la dimensione del file, per esempio un file
di 50 Mb ho un array di byte formato da 50M elementi.
fr=FileReader(nomefile);
fr.read(array);
outputstream.writeChars(array);
esiste un limite nell'allocazione di memoria in Java oppure il limite
dipende dalla macchina?
|
|
| Back to top |
|
 |
Gioacchino Guest
|
Posted: Sat Dec 17, 2005 5:41 pm Post subject: Re: Limite nel trasferimento file |
|
|
Il giorno 17 Dec 2005 06:03:39 -0800, [email]stefanomnn (AT) yahoo (DOT) it[/email] scrisse:
| Quote: | Esistono classi gia fatte, ma solo se usi protocolli standard!
Ad esempio se x il trasferimento dei file usi ftp allora sicuramente
potrai avvalerti delle API java.
I dati li puoi prendere N bytes alla volta, poi di questi N byte ne fai
cio che vuoi, es. li salvi in un file di output.
Spero di averti aiutato
Purtroppo per il lavoro che devo fare non posso utilizzare ftp. L'idea |
è quella di avere una classe (magari multithread, altrimenti ci penso
io) che abbia lo specifico compito di trasferire tutto quello che
legge da un file sullo stream di output (che può essere lo stream del
socket remoto) ed analogamente avere una classe speculare che lo legge
dallo stream di input e lo scrive su disco.
Se c'è qualcosa anche non strettamente standard Java, va bene uguale.
|
|
| Back to top |
|
 |
Giambo Guest
|
Posted: Sat Dec 17, 2005 6:51 pm Post subject: Re: Limite nel trasferimento file |
|
|
Gioacchino wrote:
| Quote: | esiste un limite nell'allocazione di memoria in Java oppure il limite
dipende dalla macchina?
|
Alla VM puoi passare per esempio con il parametro "-Xmx" la dimensione
massima dell'heap.
Nei sistemi UNIX e' il SO stesso che puo' determinare un massimo di
memoria allocata per processo/utente/gruppo.
--
Giambo - Occhio al filtro antispam _e_ alla whitelist !
|
|
| Back to top |
|
 |
Gioacchino Guest
|
Posted: Sun Dec 18, 2005 9:06 am Post subject: Re: Limite nel trasferimento file |
|
|
Il giorno Sat, 17 Dec 2005 19:51:31 +0100, Giambo
<gabriele (AT) giambonini (DOT) nospam.com> scrisse:
| Quote: | Gioacchino wrote:
esiste un limite nell'allocazione di memoria in Java oppure il limite
dipende dalla macchina?
Alla VM puoi passare per esempio con il parametro "-Xmx" la dimensione
massima dell'heap.
Nei sistemi UNIX e' il SO stesso che puo' determinare un massimo di
memoria allocata per processo/utente/gruppo.
Bene, ho capito. Grazie. |
|
|
| Back to top |
|
 |
|