输入输出流。

输入与输出,流

  1. 了解输入输出的概念

    Scanner 输入。
    System.out.println(); 输出

    在I/O中
    input 输入
    output 输出

  2. 使用File类操作文件或者目录

    文件:相关记录或者存放在一起的数据的集合

    java.io.File类去操作文件

    1. boolean exists();判断是否存在
    2. boolean isFile();判断是否是文件
    3. boolean isDirectory();判断是否是目录
    4. String getPath()获取相对路径
    5. String getAbsolutePath();获取绝对路径
    6. String getName()获取文件名称
    7. Long length();获取文件长度(大小)
    8. boolean delete();删除文件或目录
    9. boolean createNewFile();创建新文件
    10. File[] listFile();获取当前目录下的所有文件/文件夹 返回对象数组
    11. String[] list();获取当前目录下的所有文件名称。
  3. 理解流的概念及分类

    1. 按照流向划分
      • 输入流InputStream和Reader作为基类(父类)
      • 输出流OutputStream和Writer作为基类
    2. 按照处理单元划分
      1. 字节流(操作图片,文本,视频,音频都可以)
        • 字节输入流InputStream
        • 字节输出流OutputStream
      2. 字符流(文本,可以被记事本打开的的,不乱吗的内容)
        • 字符输入流Reader作为基类
        • 字符输出流Writer作为基类
  4. 会使用字节流读写文本文件

    InputStream 实现类 FileInputStream

    outputStream 实现类 FileOutPutStream

    1. 指定数据源(数据源必须存在)

    2. 指定目的地(目的地的文件如果不存在,则会自动创建)

    3. 读取后写入目的地

      FileinputStream

      ​ int read();读取一个字节

      ​ int read(byte[] b);读取到字节数组中

      ​ int read(byte[] b,int index, int len);指定读取的字节长度

      FileOutPutStream

      ​ int write();写出一个字节

      ​ int write(byte[] b);从字节数组中拿出数据写入文件中

      ​ int write(byte[] b,int index,int len);指定写出去的数据长度

    4. 关流 .close();
      补充:是否追加true追加进去。

      FileOutputStream os = new FileOutputStream(String path,boolean append);

  5. 会使用字符流读写文本文件

    Reader 子类——> FileReader

    Writer 子类——> FileWriter

    1. 指定数据源(数据源必须存在)

    2. 指定目的地(目的地的文件如果不存在,则会自动创建)

    3. 读取后写入目的地

      FileReader

      ​ int read();读取字符

      ​ int read(char[] c);读取到字节数组中

      ​ int read(char[] c,int index, int len);指定读取的字节长度

      FileWriter

      ​ int write();写出一个字节

      ​ int write(char[] c);从字节数组中拿出数据写入文件中

      ​ int write(char[] c,int index,int len);指定写出去的数据长度

    4. 关流 .close();
      补充:是否追加? true追加进去。如果不关流,数据不会自动写入目的地,如果想要强制写入,实现刷新功能flush();

    5. 字符流:BufferedReader BufferedWriter

      高校缓冲字符输入流:String readLine();读取一行

      高校缓冲字符输出流:void newLine();换行

      字节流:BufferedInputStream BufferedOutputStream

  6. [commons-io(apache子项目)的使用]

    apache(阿帕奇基金会)

    ​ commons是apache基金会下的一个子项目(它里面都是一些通用的代码)例如:文件上传 文件复制 连接池 加密处理。。。

    io是commons子项目下的一个组件,里面写的都是通用的IO操作

    Commons-codec

    Commons-fileupload

    Commons-pool

    Commons-dbcp

总结:

基类:InputStream OutputStream和Reader Writer
基础子类(节点流):FileInputStream FileOutputStream和FileReader FileWriter
处理流:BufferedInputStream BufferedOutputStream和BufferedReader BufferedWriter
带Stream 的是字节流,不带Stream的是字符流
带File的是节点流,不带File的是处理流
节点流是基础流/低级流,是直接连接数据源的,输入输出的效率较低
处理流是节点流的包装流,不仅可以消除不同节点流的实现差异,还提供了方便的方法来进行输入和输出,
处理流采用修饰器设计模式,不与数据源直接相连。
ObjectInputStream和ObjectOutputStream可以完成对对象的序列化。
转换流:InputStreamReader和OutputStreamWriter:可以将字节流转换成字符流,有个构造方法可以指定编码格式(utf-8,gbk等)
1687170064941

打印流:printStream和printWriter。打印流只有输出流没有输入流。


在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值