IO流简介

IO流

数据的无结构化传递

File

  1. 既可以代表目录,也可以代表文件

  2. mkdir(),mkdirs(),createNewFile() boolean

  3. is开头的是判断文件属性

  4. exists判断文件或者文件夹是否存在(boolean)

  5. delete删除文件夹的前提是文件夹是一个空文件夹

  6. length(),getName() 见名知义

  7. getParentFile()

  8. File[] listFiles() ; 获取文件夹内部的问价和文件夹

IO流分类

  1. 字符流(字节流+编码表)
    1. 输入流 Reader
      1. FileReader
        1. 类似FileInputStream的使用
    2. 输出流 Writer
      1. FileWriter
        1. write()到缓冲区,记得flush()
        2. fw.close()的时候也会把数据刷新到文件中去。
        3. 参数可以是字符,字符数组,字符串
  2. 字节流
    1. 输入流 InputStream
      1. FileInputStream
        1. 读取文件流
        2. 读取数据原理:java程序–>JVM–>OS–>OS读取数据的方法–>读取文件
        3. 使用步骤:
          1. 创建FileInputStream对象,构造方法中绑定要读取的数据源
          2. 使用FileInputStream对象中的方法read,读取文件
          3. 释放资源
        4. int read() 从输入流中读取数据的下一个字节。 返回 0 到 255 范围内的 int 字节值。 如果因为已经到达流末尾而没有可用的字节, 则返回值 -1。
        5. int read(byte[] b) 从此输入流中将最多 b.length (最好是1024的整数倍) 个字节的数据读入一个 byte 数组中。
        6. void close()
    2. 输出流 OutputStream(写数据)
      1. FileOutputStream(String name,boolean append) 第二个参数表示是否续写
        1. write()
  3. 使用原则
    1. 对于文本文件(.txt,.java,.c,.cpp),使用字符流处理。
    2. 对于非文本文件(.jpg,.mp3,.mp4,.avi,.doc,.ppt,…),使用字节流处理。
    3. 使用字节流FileInputStream处理文本文件,可能出现乱码
  4. 编码表
    1. ASCII
    2. GBK
    3. Unicode
    4. 乱码:编码解码不一致
      1. 解决:重新编码再解码,或者指定解码方式
  5. 高效缓冲流
    1. 解决磁盘与内存速度不匹配的问题
    2. Buffer开头
      1. BufferedInputStream
      2. BufferedOutputStream
      3. BufferedReader
      4. BufferedWriter
    3. 特有的方法
      1. readLine() 不包括换行符 条件:!=null
      2. newLine()写入一个换行符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w͏l͏j͏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值