字节输入流

java.io.InputStream :此抽象类是表示字节输入流的所有类的超类。

定义了所有子类的共性方法:

  • abstract int read() :从输入流中读取数据的下一个字节。
  • int read(byte[] b) :从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
  • void close() 关闭此输入流并释放与该流关联的所有系统资源。
    文件字节输入流

FileInputStream :文件字节输入流
作用:把硬盘文件中的数据读取到内存中

构造方法
  • FileInputStream(File file) 通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的 File 对象 file 指定。
  • FileInputStream(FileDescriptor fdObj) 通过使用文件描述符 fdObj 创建一个 FileInputStream,该文件描述符表示到文件系统中某个实际文件的现有连接。
  • FileInputStream(String name) 通过打开一个到实际文件的连接来创建一个 FileInputStream,该文件通过文件系统中的路径名 name 指定。
    作用:
  1. 创建FileInputStream对象
  2. 会把FileInputStream对象指定构造方法中要读取的文件
字节输入流读取字节数据

读取数据原理(硬盘–>内存):
java程序–>JVM–>OS–>OS调用读取数据的方法–>读取文件
字节输入流的使用步骤:

  1. 创建FileInputStream对象,构造方法中绑定要读取的文件
  2. 使用FileInputStream对象中的方法read,读取文件
  3. 释放资源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    FileInputStream fis = new FileInputStream("E:\\Down\\a.txt");
            for (int i=0,read;i<3;i++) {
                read = fis.read();
                System.out.println(read);
            }
            fis.close();
    输出结果: //文件内容:12
    49
    50
    -1  //读取完毕
    
    使用字节流读取中文的问题
    UTF-8:三个字节来表示一个中文,read方法读取一个中文相当于读取三个字节,将读取到的字节(1/3的中文)转换为字符时,中文会存在乱码情况

谢谢你请我吃糖果

支付宝
微信
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值