我有自定義套接字客戶端服務器。現在,當我傳輸二進制文件時,有些字節會轉換爲超出範圍的字符。所以我用十六進制字符串發送它們。這樣可行。但是對於另一個問題,這不是解決方案。通過套接字或http下載圖像
當我從網上下載圖片時,會發生同樣的事情。有些字節變成別的東西。我按字節比較了字節。 轉換爲字符串顯示?而不是符號。我曾試過讀者和字節數組輸入流。我已經在網上嘗試過所有的例子。我可以做什麼錯誤?
更新(回答接受):
檢查您發送或接收對象的啞劇。如果它是一個二進制文件,請使用InputStream | OutputStream和派生類,當文本時,使用Reader |作家和派生類。
不要使用讀者和作家下載的二進制文件,像我一樣(文本這隻作品,然後你必須使用十六進制字符串,增加了性能問題):
void saveFile(String strFileName){
try{
URL url = new URL(strImageRoot + strFileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter bw = new BufferedWriter(new FileWriter(strImageDownloadPath + strFileName));
String line = null;
while ((line = reader.readLine()) != null) {
bw.write(line);
}
}catch(FileNotFoundException fnfe){
System.out.println("FileNotFoundException occured!!!");
}catch(IOException ioe){
}catch(Exception e){
System.out.println("Exception occured : " + e);
}finally{
System.out.println("Image downloaded!!!");
}
}
發表您的代碼.. – 2012-04-21 06:07:28