日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java接收二进制数据_java-从套接字读取二进制数据

發(fā)布時間:2023/12/9 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java接收二进制数据_java-从套接字读取二进制数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我正在嘗試連接到服務(wù)器,然后向其發(fā)送HTTP請求(在這種情況下為GET).這個想法是請求一個文件,然后從服務(wù)器接收它.

它應(yīng)同時適用于文本文件和二進制文件(例如imgs).我對文本文件沒有任何問題,它可以完美工作,但是對二進制文件有一些麻煩.

首先,我聲明一個BufferedReader(用于讀取標(biāo)題和文本文件)和一個DataInput流:

BufferedReader in_text = new BufferedReader(

new InputStreamReader(socket.getInputStream()));

DataInputStream in_binary = new DataInputStream(

new BufferedInputStream(socket.getInputStream()));

然后,我用in_text讀取標(biāo)題,并發(fā)現(xiàn)它是文本文件還是二進制文件.如果是文本文件,我可以在StringBuilder中正確讀取.如果是二進制文件,我聲明一個byte [filesize]并存儲in_binary的以下內(nèi)容.

byte[] bindata = new byte[filesize];

in_binary.readFully(bindata);

而且它不起作用.我收到一個EOFException.

我以為in_binary可能仍在流的第一個位置,因此它尚未讀取標(biāo)頭.因此,我捕獲了標(biāo)頭的長度,并跳過了in_binary中的字節(jié).

byte[] bindata = new byte[filesize];

in_binary.reset();

in_binary.skip(headersize);

in_binary.readFully(bindata);

而且還是一樣.

可能會發(fā)生什么?

謝謝!

PD:我知道我可以使用URLConnection等.那不是問題.

總結(jié)

以上是生活随笔為你收集整理的java接收二进制数据_java-从套接字读取二进制数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。