
1 momocraft Nov 26, 2022 大小正确那内容正不正确啊 |
3 wowo243 Nov 26, 2022 chmod +x 也不能执行么,md5 对比下呢 |
5 aguesuka Nov 26, 2022 把 read 改成 readAllBytes |
6 luozic Nov 26, 2022 二进制文件写入不用二进制方式? |
8 xuanbg Nov 26, 2022 chmod 775 filename |
9 noor OP 过了几个月了突然想起这个问题已经解决了。 问题代码:chipToolResource.getInputStream().available()获取的的字节大小并不一定准确 每个平台实现的实现不一样,windows 上是正确的,linux 上不一定正确。 文档中也有说: * <p> Note that while some implementations of {@code InputStream} will return * the total number of bytes in the stream, many will not. It is * never correct to use the return value of this method to allocate * a buffer intended to hold all data in this stream. byte[] chipToolBytes = new byte[chipToolResource.getInputStream().available()]; 换了种方式就可以了 File outputFile = new File(tmp+"/chip-cert"); OutputStream outputStream = new FileOutputStream(outputFile); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } |