2011-07-22 60 views
2

我的任務是: 客戶端連接到ServerSocket並以任何他們想要的編碼發送文件(UTF-8,ISO-8859-5,CP1251等)。 當服務器接收到文件內容時,腳本必須將其插入到MySQL中。將InputStream保存爲ByteArray

由於編碼可能不同,我需要保存像ByteArray(?)這樣的文件內容。

Byt我不知道如何從Socket.getInputStream()獲取ByteArray。

請幫忙。

在此先感謝!

回答

4
ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
byte[] tmp = new byte[4096]; 
int ret = 0; 

while((ret = inputStream.read(tmp)) > 0) 
{ 
    bos.write(tmp, 0, ret); 
} 

byte[] myArray = bos.toByteArray(); 
+0

謝謝!在MySQL中保存文檔 - 清除。 – smie

+0

還有一個問題。如何在不指定編碼的情況下將字節數組發送到客戶端文檔到Socket OutputStream? – smie

+0

我想通了...... OutputStream OS = DataTransferSocket.getOutputStream();然後OS.write(FileContent);在字節數組中。謝謝大家! – smie