FileInputStream的int read()、int read(byte[] b)、int read(byte[] b, int off, int len)

简介: 读取一个字节数据并返回(以int型返回)

FileInputStream的read方法

2345_image_file_copy_484.jpg

解释一下:

int read() :

(1)读取一个字节数据并返回(以int型返回)

(2)再次调用读取下个未读字节

(3)文件末尾返回-1(一个真实数据也没读到)

演示文件

image.jpeg

代码

FileInputStream fileInputStream = new FileInputStream(new File("E:\\aa.txt"));
        int read1 = fileInputStream.read();
        int read2 = fileInputStream.read();
        int read3 = fileInputStream.read();
        System.out.println(read1);
        System.out.println(read2);
        System.out.println(read3);

输出

2345_image_file_copy_486.jpg

int read(byte[] b) :

(1)读取数据存储在b数组中,一次读取b.length个字节

(2)返回读取的数据真实长度(有可能b数组长度是100,但是真实数据只有5个,则返回5)

(3)再次调用从下个未读字节开始读

(4)文件末尾返回-1(一个真实数据也没读到)

演示文件

2345_image_file_copy_487.jpg

代码

FileInputStream fileInputStream = new FileInputStream(new File("E:\\aa.txt"));
        byte[] bytes1=new byte[5];
        int read1 = fileInputStream.read(bytes1);
        System.out.println(read1);
        System.out.println(Arrays.toString(bytes1));
        byte[] bytes2=new byte[5];
        int read2 = fileInputStream.read(bytes2);
        System.out.println(read2);
        System.out.println(Arrays.toString(bytes2));
        byte[] bytes3=new byte[5];
        int read3 = fileInputStream.read(bytes3);
        System.out.println(read3);
        System.out.println(Arrays.toString(bytes3));

输出

2345_image_file_copy_488.jpg

int read(byte[] b, int off, int len) :

(1)将读到的数据存储到b中

(2)从数组下标off(包括)开始存储,读取len个字节(len<=b.length-off)

(3)返回读取的数据真实长度

(4)再次调用从下个未读字节开始读

(5)文件末尾返回-1(一个真实数据也没读到)

演示文件

2345_image_file_copy_489.jpg

代码

FileInputStream fileInputStream = new FileInputStream(new File("E:\\aa.txt"));
        byte[] bytes1=new byte[5];
        int read1 = fileInputStream.read(bytes1, 2, 3);
        System.out.println(read1);
        System.out.println(Arrays.toString(bytes1));
        byte[] bytes2=new byte[5];
        int read2 = fileInputStream.read(bytes2, 2, 3);
        System.out.println(read2);
        System.out.println(Arrays.toString(bytes2));
        byte[] bytes3=new byte[5];
        int read3 = fileInputStream.read(bytes2, 2, 3);
        System.out.println(read3);
        System.out.println(Arrays.toString(bytes3));

输出

2345_image_file_copy_490.jpg

相关文章
|
14天前
|
Java
byte加byte居然是int了
为什么在Java中,byte加byte的结果不是byte,而是int?本文将带你从Java语言规范和JVM规范层面研究该问题。
37 3
byte加byte居然是int了
|
SQL Java 数据库连接
对于mybatis if标签对 byte int 等非字符串和字符串判断的问题
对于mybatis if标签对 byte int 等非字符串和字符串判断的问题
|
存储 Java
[java 基础知识] byte int 互转
[java 基础知识] byte int 互转
131 0
|
Java
java基本数据类型, byte: short: int: long: float: double: float和double有什么区别 boolean: ch
java基本数据类型, byte: short: int: long: float: double: float和double有什么区别 boolean: ch
266 0
java中整型数据(byte、short、int、long)溢出的现象及原理
java中整型数据(byte、short、int、long)溢出的现象及原理
|
网络协议 机器人 物联网
案例分享:Qt modbus485调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.3.0)
案例分享:Qt modbus485调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.3.0)
案例分享:Qt modbus485调试工具(读写Byte、Int、DInt、Real、DReal)(当前v1.3.0)
案例分享:Qt西门子PLC调试模拟工具(包含PLC上位机通讯,PLC服务器,读写Byte、Int、DInt、Real)(持续更新,当前v1.5.0)
案例分享:Qt西门子PLC调试模拟工具(包含PLC上位机通讯,PLC服务器,读写Byte、Int、DInt、Real)(持续更新,当前v1.5.0)
案例分享:Qt西门子PLC调试模拟工具(包含PLC上位机通讯,PLC服务器,读写Byte、Int、DInt、Real)(持续更新,当前v1.5.0)
|
存储 Java
java:int强制类型转换成byte
int 在java中是32位, byte是8位 原码:就是二进制码,最高位为符号位,0表示正数,1表示负数,剩余部分表示真值 反码:在原码的基础上,正数反码就是他本身,负数除符号位之外全部按位取反 补码:正数的补码就是自己本身, 负数的补码是在自身反码的基础上加1
java:int强制类型转换成byte
|
Java
Java中两个或多个byte数组合并及int类型转数组
Java中两个或多个byte数组合并及int类型转数组
429 0