java stream读取超大数据 FileInputStream的read()方法一次读取一个字节并返回?

[更新]
·
·
分类:互联网
4977 阅读

java stream读取超大数据

FileInputStream的read()方法一次读取一个字节并返回?

FileInputStream的read()方法一次读取一个字节并返回?

从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int 字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。我们需要使用一个不可能在数据中出现的值来表示流末尾, Java中就是用-1来表示这个末尾的, 因为-1不会在数据中出现,如果返回byte, 同样无法表示流末尾., byte的取值范围是从-128到127,这个范围内所有的数据, 都有可能在数据中出现,read()方法需要返回一个特殊的值来表示流末尾, 这个值不能和流中的数据重复,read()方法内部将读取到的所有字节高位补0转为int返回, 这样做所有的数据都会是正数,这时就可以用-1表示流末尾了,而改变后的数据只要强转回byte, 就可以得到原有数据。也就是说你把一个字节的数据和java中的byte类型的数据混淆了。

java的输入和输出为什么要那么复杂?

Java的IO设计的确很复杂,很多朋友在使用时IO时被各种各样的流弄的晕头转向。

java中写文件操作时FileOutputStream和FileWriter的不同?

简单的说FileOutputStream、FileInputStream和FileWriter、FileReader是常用的文件输入输出流,其中FileOutputStream、FileInputStream是单字节写入和读取的,即每次读取和写入的单位为一个字节;而FileWriter、FileReader是单字符写入和读取的,即每次读取和写入的单位为一个字符,这个字符可能是一个字节,也可能是2个字节,如汉字,当然还要根据文件的编码格式。

Java中不使用HashMap怎么实现统计字符串中每个字符出现的次数?

有轮子不让使那就自己造轮子!简单的看题主要求,仅仅是查找字符串中每个字符出现的个数。第一步是找出不同的字符,第二个是遍历字符串,找出每个不同字符的个数,累加求和返回。