我有自定义socket
客户端服务器数据(文件或文本)传输代码。现在,当我传输二进制文件时,一些字节转换为超出范围的字符。所以我以十六进制字符串发送它们。这样可行。但是对于另一个问题,这不是解决方案。这也有性能问题。
我从Java 代码中获得了帮助 To convert byte to Hexadecimal。
当我从网上下载图像时,也会发生同样的事情。一些字节变成了别的东西。我已经逐字节比较了字节。转换成字符串显示?
而不是符号。我已经尝试过阅读器和字节数组输入流。我已经尝试了网络上的所有示例。我可能会犯什么错误?
我的代码将字节保存到文件:
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!!!");
}
}