看板 java 關於我們 聯絡資訊
對於檔案的傳輸方式還是不大懂 例如我用 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