Java文件下载乱码问题解析
在java中,文件下载时遇到乱码问题,原因可能有多种。其中一种常见问题是缓冲区大小不当。
具体来说,代码2中出问题的根源在于:
问题原因:
立即学习“Java免费学习笔记(深入)”;
文件总字节数不一定总是1024字节的整数倍。因此,最后一次写入时,缓冲区末尾可能包含不必要的数据,导致乱码。
解决方案:
正确的做法是每次只写入读取的字节数,避免在最后写入不必要的数据。代码示例如下:
int len; byte[] bytes = new byte[1024]; while ((len = inStream.read(bytes)) != -1) { outStream.write(bytes, 0, len); }