最赞回答 / 天涯蝶舞
0x表示16进制,16进制用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F来表示,一个字节用16进制表示就一个两位或一位的数,例如a,0f,af,ae,3b,e,c等,其中一位的可以补0,例如0a,0e,0c。当只有一位时,f就说最大的,所以只要比16进制的f小或相等,一个字节转换为16进制就一定只有一位,这个时候就需要对其补0才能使两位数,所以表示为b <= 0xf
2015-12-22
最赞回答 / IT界小嫩草一枚
不知道你有没有看read这个方法的API, 关于这个方法的返回是这样描述的the total number of bytes read into the buffer, or -1 if there is
no more data because the end of the file has been reached.就是说这个方法是返回一共能读取的字节个数,如果已经读完的话会返回-1 这个值,不过为什么要返回-1, 是人家自己设计的,如果感兴趣可以去看源码。希望能帮到你
2015-12-21
也算深入浅出了,细节知识不是很详细,有几个细节知识是我自己谷歌了很多次才找到的,比如 1.read()返回的int值是0~255,对应byte取值 -127~127 ,负数是补码(取反+1) 2.向已存在的文件循环写入的时候,writeObject 会每次都写文件头,导致读取出错,要重写writeStreamHeader()方法 3.写文件到指定目录 if(!path.exists()){path.mkdirs();path.mkdir();}if(!file.exists()){file.createNewFile();}
2015-12-20