IO流学习笔记

IO 流#

Input Output Stream(输入输出流):以流的方式进行输入输出
与文件或数据交互的内容称为 IO 流,在 JDK 中java.io包下

input(输入流):System.in(标准输入流)
output(输出流):System.out(标准输出流)

一. File 类#

File 类代表一个文件或文件夹

常用方法 方法描述
createNewFile() 创建新文件
exists() 判断文件是否存在
delete() 删除文件或文件夹,删除文件夹时只能删除空文件夹
mkdir() 创建目录,不包含子目录
mkdirs() 创建目录,包含子目录
listFiles() 获取指定目录的文件与文件夹,返回一个File数组
getName() 获取文件或文件夹的名称
getPath() 获取文件或文件夹的完整路径
isDirectory() 判断是否为一个文件夹
isFile() 判断是否为一个文件
isHidden() 判断是否为一个隐藏文件
length() 获取文件的大小,单位为字节

二. RandomAccessFile(随机访问文件的读取与写入)#

  1. 读取:raf.read(byte[] data) 字节方式读取

  2. 写入:raf.write(btye[] data) 写入内容的字节数组

三. 文件字节流(☆)#

  1. FileInputStream(文件字节输入流):用来读取文件

  2. FileOutputStream(文件字节输出流):用来写入文件

四. 文件字符流(☆)#

  1. FileReader(文件字符输入流):用来读取文件
  2. FileWriter(文件字符输出流):用来写入文件

五. Java 中流的分类(☆)#

  • 字节流:

    1. InputStream(字节输入流):用来读取文件

    2. OutputStream(字节输出流):用来写入文件

  • 字符流:

    1. Reader(字符输入流):用来读取文件

    2. Writer(字符输出流):用来写入文件

六. 字节流与字符流的区别#

  1. 字符流的底层就是字节流,字符流是对字节流的一种封装

  2. 字节流可以读取任何文件,字符流只能读取文本

  3. 使用字符流需要考虑字符编码,字节流不需要

  4. 字符流可以按字符大小读取,也可以一行一行读取,字节流只能按字节大小读取

七. ObjectInputStream(对象流)#

对象流可以把对象存储到硬盘中,也可以从硬盘中读取一个对象,在 Java 中称为序列化与反序列化
序列化对象必须实现java.io.Serializable
分配了内存空间的对象做序列化操作,必须实现java.io.SeriaZable

ObjectInputStream 对象输入流 反序列化 把对象从硬盘中读取到内存中
ObjectOutputStream 对象输出流 序列化 把内存中的对象写入到硬盘中

八. 缓冲流#

  • 优点:减少对硬盘的IO读写,提高读写效率
BufferedInputStream 字节缓冲输入流 默认大小8K
BufferedOutputStream 字节缓冲输出流 默认大小8K
BufferedReader 字节缓冲输入流
BufferedWriter 字节缓冲输出流

九. 序列化与反序列化#

  • 序列化:将 Java 程序中的有序不重复的对象保存在某种介质中

  • 反序列化:将介质中的有序不重复的对象读入到 Java 程序中

  • 持久化:将 Java 程序中的数据永久的保存在某种介质(电脑磁盘,数据据库)当中

序列化特点:
1. 序列化的对象必须要实现Serializable接口(可序列化)
2. 静态的属性不能够被序列化
3. 若被序列化的对象中含有类属性时,则该属性也必须是可序列化的

十. 克隆#

克隆的对象必须要实现Cloneable接口

Sheep p  = new Sheep();
Sheep pp = (Sheep)p.clone();

课后作业#

  1. 遍历指定目录下的所有文件(只要文件),包含子目录,此方法返回一个 File 列表

  2. 遍历指定目录下的指定文件(后缀名),包含子目录,此方法返回一个 File 列表

  3. 删除指定的文件夹,包含子目录

  4. 使用字节输入输出流复制文件

  5. 使用字节输入输出流复制文件夹,包含子目录

posted @   Schieber  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
主题色彩