Re: [問題] 用socket做檔案傳輸的檔案大小問題...

看板java作者 (Challenge!)時間16年前 (2008/06/21 14:04), 編輯推噓3(3010)
留言13則, 2人參與, 最新討論串3/4 (看更多)
對於檔案的傳輸方式還是不大懂 例如我用 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)

06/21 14:11, , 1F
你的檔案如果有個幾百 mb 這樣的方法就不能用了
06/21 14:11, 1F

06/21 14:11, , 2F
那要怎麼辦勒 orz
06/21 14:11, 2F

06/21 14:13, , 3F
上一篇就是解答了,不然找個 tutorial 來看吧
06/21 14:13, 3F
※ 編輯: miyuika 來自: 123.193.65.164 (06/21 14:13)

06/21 14:14, , 4F
說真的是...概念看不懂...冏" 我手邊只有很基礎的java書XD
06/21 14:14, 4F

06/21 14:18, , 5F
tutorial ... 是什麼 ( ̄▽ ̄|||) 引導教學?
06/21 14:18, 5F

06/21 14:21, , 6F
好像翻譯成導覽吧
06/21 14:21, 6F

06/21 14:22, , 7F
n bytes寫進Socket ←這個寫進socket是什麼意思...
06/21 14:22, 7F

06/21 14:25, , 8F
因為我之前是用byte陣列buff的內容直接寫入檔案
06/21 14:25, 8F

06/21 14:31, , 9F
要怎麼把檔案分批寫入輸出串流中呢?...不懂 orz
06/21 14:31, 9F

06/21 14:34, , 10F
又要怎麼樣把傳送過來的buffer分批寫入檔案呢 囧
06/21 14:34, 10F

06/21 14:40, , 11F
我大概知道了 是用 fo.write(byte,int off,int len); 嘛?
06/21 14:40, 11F

06/21 14:42, , 12F
好八,自己再試試看 orz 感謝各位的回應
06/21 14:42, 12F

06/21 14:43, , 13F
先看看 API 有哪些方法可以用,再想想看怎麼組合出你要的功能
06/21 14:43, 13F
文章代碼(AID): #18N9dNRx (java)
討論串 (同標題文章)
文章代碼(AID): #18N9dNRx (java)