最近在做下载方面的开发。有一个需求,就是读取要下载的文件中的一些数据,比如要读取这个文件包含的用户信息,但是怎么读都不对。后来搞了很久才发现,服务器上的文件里的用户信息,用C#写的存储方法来存储的,而我在读取时的操作是用java写的,关键的一点是,c#中的byte范围是[0-255],java的是[-128,127],所以导致了我用byte[]数组读取数据时,如果那一位的数据超过127就会变成负数。
需要进行转换:
int data[] = new int[b.length]; for(int i=0 ; i<b.length ; i++){ data[i] = b[i] & 0xff; }
转换以后,就可以正常读取了。