java:通过设置byte数组的大小来进行数据的读写的时候出现写入的文件内容和读取的文件内容不符怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:通过设置byte数组的大小来进行数据的读写的时候出现写入的文件内容和读取的文件内容不符怎么办相关的知识,希望对你有一定的参考价值。
while (fis.read(b)> -1)
fos.write(b);//b是一个byte数组,大小1024
程序运行后,写入的文件内容后面一部分(最后一次读取1024个字节)重复了,如何解决这个问题
while (-1 != (len = fis.read(b)) )
fos.write(b,0,len);//b是一个byte数组,大小1024
本回答被提问者和网友采纳
java short 数组转换 byte数组
java short 数组转换 byte数组
可以通过循环再加强制转换来进行转换,如下
short[] one = 1,2,3;byte[] two = new byte[one.length];
for(int i=0;i<two.length;i++)
two[i] = (byte) one[i];
for(byte b : two)
System.out.println(b);
追问
强转会丢失数据,还有更好的办法吗
追答你想把short向byte转,本来就有可能丢失数据的,当然是有更好的办法,在转之前判断short类型的值会不会超出byte的范围,会的话截取再判断,最终是可以以byte[]数组来存放一个short类型的值,若是short[]数组转byte类型的话,那就需要用二维的byte[][]数组来存放了。但这样转换真的挺麻烦,转换的过程中考虑的东西也多!!
参考技术A 用for循环把short数组的每个值强制转化成byte 然后对应赋值给一个byte数组追问
强转会丢失数据,还有更好的办法吗
以上是关于java:通过设置byte数组的大小来进行数据的读写的时候出现写入的文件内容和读取的文件内容不符怎么办的主要内容,如果未能解决你的问题,请参考以下文章