一、IO基本概念

IO是Input(输入)和Output(输出)的缩写,主要指在程序运行过程中,进行数据的输入和输出操作。Java的IO流是Java输入输出系统的核心,用于读取和写入数据。通过IO流,程序可以从外部数据源(如文件、网络)读取数据,或将数据写入外部数据源。

二、File文件类介绍

java.io.File类是Java中用于表示文件或目录路径的类,它提供了操作文件和目录的多种方法。以下是一些常用方法:

  • exists():判断文件或目录是否存在。
  • isDirectory():判断是否为目录。
  • isFile():判断是否为文件。
  • createNewFile():创建一个新文件。
  • mkdir():创建一个新目录。
  • delete():删除文件或目录。
  • list():列出目录下的文件和目录名称。
三、IO流种类及特性

Java的IO流按照流的方向和功能可以分为四大类:

  1. 字节流(Byte Streams):用于处理字节数据,主要类有InputStreamOutputStream及其子类。
    • FileInputStreamFileOutputStream:用于文件的字节输入和输出。
    • BufferedInputStreamBufferedOutputStream:提供缓冲功能,提高读写效率。
  2. 字符流(Character Streams):用于处理字符数据,主要类有ReaderWriter及其子类。
    • FileReaderFileWriter:用于文件的字符输入和输出。
    • BufferedReaderBufferedWriter:提供缓冲功能,提高读写效率,并提供按行读取功能。
  3. 数据流(Data Streams):用于读写基本数据类型的数据,主要类有DataInputStreamDataOutputStream
    • 可以读写Java的基本数据类型,如intfloatdouble等。
  4. 对象流(Object Streams):用于读写Java对象,主要类有ObjectInputStreamObjectOutputStream
    • 可以实现对象的序列化和反序列化,即将对象转换为字节流,以便存储或传输。
四、IO流中的路径分隔符

在Java中,文件路径的分隔符因操作系统而异:

  • Windows系统使用反斜杠(\\)。
  • Unix/Linux系统使用正斜杠(/)。

为了编写跨平台的代码,Java提供了File.separator来获取系统的默认路径分隔符。此外,File类还提供了File.separatorCharFile.pathSeparator等常量。

五、面试集合知识点汇总及解答
  1. IO流的分类及特性
    • 字节流和字符流的区别?
      • 字节流处理的是字节(8位),可以处理任何类型的数据(如图片、视频)。
      • 字符流处理的是字符(16位),专门用于处理文本数据,自动处理字符编码问题。
  2. 缓冲流的作用
    • 提高IO操作的效率,减少读写次数。
  3. 对象流如何实现对象的序列化和反序列化
    • 通过实现Serializable接口,将对象转换为字节流存储或传输。
  4. 常见的IO异常及其处理
    • FileNotFoundException:文件未找到。
    • IOException:输入输出过程中的异常。
六、各类IO流的实际应用场景举例
  1. 文件拷贝

2.文件拷贝

3.对象的序列化和反序列化

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注