我的任務是: 客戶端連接到ServerSocket並以任何他們想要的編碼發送文件(UTF-8,ISO-8859-5,CP1251等)。 當服務器接收到文件內容時,腳本必須將其插入到MySQL中。將InputStream保存爲ByteArray
由於編碼可能不同,我需要保存像ByteArray(?)這樣的文件內容。
Byt我不知道如何從Socket.getInputStream()獲取ByteArray。
請幫忙。
在此先感謝!
我的任務是: 客戶端連接到ServerSocket並以任何他們想要的編碼發送文件(UTF-8,ISO-8859-5,CP1251等)。 當服務器接收到文件內容時,腳本必須將其插入到MySQL中。將InputStream保存爲ByteArray
由於編碼可能不同,我需要保存像ByteArray(?)這樣的文件內容。
Byt我不知道如何從Socket.getInputStream()獲取ByteArray。
請幫忙。
在此先感謝!
共享IO - http://commons.apache.org/io/
toByteArray(Reader input, String encoding)
使用指定的字符編碼得到一個閱讀器的內容作爲一個字節[]。
http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html
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();
因爲服務器不知道是什麼編碼的客戶使用我不能使用此。 – smie
@ user857923:嘗試'toByteArray(InputStream input)'(也來自Commons IO IOUtils)。 –