java:通过设置byte数组的大小来进行数据的读写的时候出现写入的文件内容和读取的文件内容不符怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java:通过设置byte数组的大小来进行数据的读写的时候出现写入的文件内容和读取的文件内容不符怎么办相关的知识,希望对你有一定的参考价值。

while (fis.read(b)> -1)
fos.write(b);//b是一个byte数组,大小1024

程序运行后,写入的文件内容后面一部分(最后一次读取1024个字节)重复了,如何解决这个问题

参考技术A int len = 0;

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数组的大小来进行数据的读写的时候出现写入的文件内容和读取的文件内容不符怎么办的主要内容,如果未能解决你的问题,请参考以下文章

java short 数组转换 byte数组

java 中简述使用流进行读写文本文件的步骤?

byte数组大小问题

Java对象大小的计算方式

大数据Java基础int型与byte型数组的转换

设计一个float类型的数组类CFltArray,要求CFltArray可以进行如下操作: