面试题:InputStream读取字节,文件结束符是-1,那怎么知道-1是不是字面上的-1?
其实问题很简单,不要被带节奏了,InputStream read方法读取的是字节,而不是字符,字节用ASCII码代表一个字符,所以-1在字节里表示的是‘-’和‘1’两个字符,而不是字面上的-1这个数字。其次read方法返回的是-1到255,而不是-256到255,详情可以看源码
再来个小测试验证,a.txt里面是-1两个字符,输出是负号和1对应的ASCII码
其实问题很简单,不要被带节奏了,InputStream read方法读取的是字节,而不是字符,字节用ASCII码代表一个字符,所以-1在字节里表示的是‘-’和‘1’两个字符,而不是字面上的-1这个数字。其次read方法返回的是-1到255,而不是-256到255,详情可以看源码
再来个小测试验证,a.txt里面是-1两个字符,输出是负号和1对应的ASCII码