作者miyuika (Challenge!)
看板java
標題Re: [問題] 用socket做檔案傳輸的檔案大小問題...
時間Sat Jun 21 14:04:05 2008
對於檔案的傳輸方式還是不大懂
例如我用
FileInputStream fi=new FileInputStream("c:\\Tranfile\\2nd03_04_1280.jpg");
System.out.println("傳送之檔案大小為:"+fi.available()+"bytes");
byte data[]=new byte[fi.available()];
fi.read(data);
讀檔案到陣列裡面
我要怎麼樣把它分批傳給server呢 囧"""
還是不會阿阿~(哭
※ 引述《chchwy (mat)》之銘言:
: 沒人在用超大陣列的啦....都馬分批送
: 簡單概念
: 先取得檔案大小 fileSize
: while(fileSize>0){
: //從檔案讀512 bytes
: //實際上讀了n bytes
: //n bytes寫進Socket
: fileSize -= n;
: }
: 接收端動作反過來就好了
: ==
: 米油姐XD
: ※ 引述《miyuika (Challenge!)》之銘言:
: : 最近在研究用socket作檔案傳輸(我是初學者~冏
: : 可做到Server跟Client間,二進位檔案上傳下載(用FileOutputStream)
: : 但因為byte陣列大小限制在65536,
: : 檔案只做一次傳輸, 變成說傳送之檔案大小不能超過65536bytes
: : 該如何解決呢? 多傳幾次嗎?可是怎麼做續傳呢 @@?
: : 請高人幫忙解惑 orz thx! ^^
--
◤
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ╱╲ ★
| ◣ ◣ ◣ ◢ ◣ ◢ ╱ ╲
| ■
◣ ◢
◣ ◥
◣◢◤
■ ■╱ ╲
| ■◥
◣◢
◤■ ■ ■ ■ ■
 ̄|˙ ˙| ̄
| ■ ■ . ■ ˙
■ ● ◥◣◢
◤﹌>︽︽<﹌
http://album.blog.yam.com/miyuika
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.65.164
※ 編輯: miyuika 來自: 123.193.65.164 (06/21 14:11)
推 tkcn:你的檔案如果有個幾百 mb 這樣的方法就不能用了 06/21 14:11
→ miyuika:那要怎麼辦勒 orz 06/21 14:11
→ tkcn:上一篇就是解答了,不然找個 tutorial 來看吧 06/21 14:13
※ 編輯: miyuika 來自: 123.193.65.164 (06/21 14:13)
→ miyuika:說真的是...概念看不懂...冏" 我手邊只有很基礎的java書XD 06/21 14:14
→ miyuika:tutorial ... 是什麼 ( ̄▽ ̄|||) 引導教學? 06/21 14:18
推 tkcn:好像翻譯成導覽吧 06/21 14:21
→ miyuika:n bytes寫進Socket ←這個寫進socket是什麼意思... 06/21 14:22
→ miyuika:因為我之前是用byte陣列buff的內容直接寫入檔案 06/21 14:25
→ miyuika:要怎麼把檔案分批寫入輸出串流中呢?...不懂 orz 06/21 14:31
→ miyuika:又要怎麼樣把傳送過來的buffer分批寫入檔案呢 囧 06/21 14:34
→ miyuika:我大概知道了 是用 fo.write(byte,int off,int len); 嘛? 06/21 14:40
→ miyuika:好八,自己再試試看 orz 感謝各位的回應 06/21 14:42
推 tkcn:先看看 API 有哪些方法可以用,再想想看怎麼組合出你要的功能 06/21 14:43