吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 614|回复: 3
收起左侧

[学习记录] Java IO流基础知识点

[复制链接]
Kai1222 发表于 2022-4-16 12:44

IO 流

文件操作

创建文件对象构造器与方法
  • new File(String pathName): 根据路径构建一个File对象
  • new File(File parent, String child): 根据父目录文件 + 子路径构建
  • new File(String parent, String child): 根据父目录 + 子路径构建
  • 创建新文件: file.createNewFile()
获取文件信息
  • getName
  • getAbsolutePath
  • getParent
  • length
  • exists
  • isFile
  • isDirectory
目录操作
  • mkdir() 创建一级目录
  • mkdirs() 创建多级目录
  • delete() 删除空目录或文件

Java IO 流

IO 流原理
  1. I/O 即 Input/Output,读写
  2. Java对数据的输入/输出以“流(stream)”的方式进行
  3. 输入input:程序读取外部数据到内存中
  4. 输出output: 程序将(内存)数据输出到外部
流的分类
  • 操作数据单位: 字节流、字符流
  • 数据流的流向: 输入流、输出流
  • 数据流的角色: 节点流, 处理流(包装流)
文件与流
FileInputStream 字节输入流
  • 创建FileInputStream : new FileInputStream(filePath)
  • 读取数据: read() , 读取一个字节的数据,如果返回-1,表示读取结束
  • read(byte[] b), 一次性读取b.length 个字节,并返回实际读取的字节数,-1表示结束
    > 输出: new String(b, 0, readLen)//readLen表示实际读取的字节数
FileOutPutStream 字节输出流
  • 创建FileOutputStream : new FileOutputStream(filePath) ,写入内容会覆盖原来的内容
  • 追加文件内容: new FileOutputStream(filePath, true) 写入内容追加到文件后面
  • 写入单字节: fileOutputStream.write()
  • 写入字符串: fileOutputStream(string.getBytes())  字符串 -> 字节数组

    写入后需要flush刷新或close关闭,才会真正写入数据

FileReader & FileWriter 字符流
  • 构造器与字节流类似
  • 读取与写入按字符处理 read(char[] c)/ write(char[])   string.toCharArray() 字符串 -> 字符数组

    同样,FileWriter使用后,必须关闭(close) 或  刷新(flush),否则写入不到指定文件

节点流和处理流
  • 节点流是从一个特定的数据源读写数据 (上面所说的字节流和字符流)
  • 处理流(包装流), 在节点流的基础上提供功能更强大和更灵活的 读写功能 (BufferedReader,BufferInputStream等)
  • 节点流是底层流/低级流,直接与数据源相接
  • 处理流包装节点流(模拟修饰器设计模式),不直接与数据源相连,既可以消除不同节点流的差异,也可以提供更方便的方法来完成输入输出
对象流 ObjectInputStream & ObjectOutputStream
序列化与反序列化
  • 序列化就是保存数据时保存数据的值和数据类型
  • 反序列化就是在恢复数据时,恢复数据的值和类型
  • 若要某个对象支持序列化,其类必须时可序列化的,必须实现 Serializable(标记接口,没有方法) 或 Externalizable(有方法要实现) 接口
ObjectInputStream & ObjectOutputStream
  • 读写顺序一致
  • 序列化或反序列化对象要实现Serializable接口
  • 默认对象内的所有属性(处理static或transient修饰的)都进行序列化
  • 对象内的属性的类型也要实现序列化接口
  • 序列化具备可继承性
标准输入输出
  • 标准输入:System.in, 类型: InputStream 默认设备是键盘
  • 标准输出:System.out, 类型: OutputStream 默认设备是显示器
转换流 InputStreamReader & OutputStreamReader
  • InputStreamReader: 可以将InputStream(字节流)转换(包装)成 Reader(字符流)
  • OutputStreamWriter: 可以将OutputStream转换(包装)成 Writer (字符流)

    处理纯文本数据时,字符流效率更高,并可以有效解决中文乱码的问题,因为在将字节流转换的时候,可以指定文件的编码格式

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
xiadongming 发表于 2022-4-16 15:11
提示: 作者被禁止或删除 内容自动屏蔽
苦茶 发表于 2022-4-16 16:47
sanyuebeichen 发表于 2022-4-17 01:00
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表