为什么Java的这种文件下载方式会出问题,是文件类型问题吗?-灵析社区

生成头像

![代码1](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/d02a785fe6caf6b9d4e602d07803ef50.png)![代码2](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/248c096b067047ea8b42ec6282977890.png) 为什么我用代码2来下载word或者ppt结果打开就是乱码txt文件就没这种问题,用代码1的都是正常的

阅读量:199

点赞量:0

问AI
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241003/5c0c38691901cd9699964b800d80092a.png) 你这缓冲区始终是 1024,while 循环每次都写这么多,最后一次也是。可你总字节数一定是 1024 的整数倍吗?如果不是的话最后一次写的时候结尾不一堆乱字节吗?你 txt 没乱码估计也是因为文件太小的缘故,压根没有 1024,第一次就是最后一次,否则一样有乱码。 非要这么写的话也应该是: int len; byte[] bytes = new byte[1024]; while ((len = inStream.read(bytes)) != -1) { outStream.write(bytes, 0, len); }