字节流的简单操作 (fileInputStream, fileOutputStream)

上篇中的File能进行一些常规的文件操作,但是没有读写两个核心操作

流(Stream)
就是Java中针对文件操作,又进行了进一步的抽象
流是一组类/一组API,描述了如何来进行文件读写操作
不同的类的读写方式都会存在差异

在这里插入图片描述
图中黄色部分为常用类.

所有的IO流相关的类,一共分成两个大的部分

  1. 字节流 读写数据以字节位基本单位 (byte)
  2. 字符流 读写数据以字符位基本单位 (char)

当我们处理文本文件的时候,使用字符流
当我们处理二进制文件的时候,使用字节流

区分二进制文件和文本文件的简单方式:
用记事本打开文件,如果能看懂,那就是文本文件
如果看不懂,那就是二进制文件

字节流

  1. InputStream:
    输入,从输入设备读取数据到内存中.
  2. OutputStream:
    输出.把内存中的数据写入到输出设备中

如果发现某个类的名字中带有inputStream/OutputStream 说明这就是字节流
但是也有个例外,PrintStream不带上面的内容,但他也是字节流

字符流

  1. Reader:输入
  2. Writer:输出

如果发现某个类的名字中带有Reader或这Writer,说明这个类就是字符流~
但是也有特例:

  1. InputStreamReader
  2. OutputStreamWriter

这两个是字符流,主要是看一个单词的后面一部分,最后一部分是主体,前面的部分都是修饰的

以字节流为例,使用流对象读写文件

需要知道的两个知识点:
FileInputStream(文件输入流)

  • FileInputStream(File file) : 向file对象的文件读取数据
  • FileInputStream(String path) : 向path文件读取数据

读取数据: 一个一个字节读取

public static void main(String[] args) throws IOException {
   
        FileInputStream fileInputStream = new FileInputStream("e:/BaiduNetdiskDownload/test.txt");
        int len = -1;
        //每次只读一个字节,如果没读完就返回下一个数据字节,如果读完了就返回-1,读完了就退出循环
        while((len = fileInputStream.read()) != -1) {
   
            System.out.print((char)len);
        }
        fileInputStream.close();

    }

输出:
test

读取数据: 先把字节存入到缓存区数组中,一次读一个指定长度的字节数组

public 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值