JAVA - File类、字节流、字符流、特殊操作流

1.File类的构造方法

JAVA - File类、字节流、字符流、特殊操作流_第1张图片

File类的创建文件功能

JAVA - File类、字节流、字符流、特殊操作流_第2张图片

File类的判断和获取功能

JAVA - File类、字节流、字符流、特殊操作流_第3张图片

File类的删除功能

在这里插入图片描述

2.IO流 - 字节流、字符流

字节流

  1. 处理字节数据:字节流以字节为单位处理数据,适用于处理二进制文件(如图像、音频、视频文件)或以字节为基本单位的文本文件。

  2. 底层 I/O 操作:字节流通常用于执行底层I/O操作,因为它们可以直接读取和写入文件的字节数据。

  3. InputStream 和 OutputStream:在Java中,字节流有两个主要的抽象类:InputStream 用于读取字节数据,OutputStream 用于写入字节数据。

  4. 不适合字符数据:虽然可以用字节流来处理字符数据,但它们不够方便,因为它们不会处理字符编码,可能会导致字符数据在不同编码下的错误解释。

字符流

  1. 处理字符数据:字符流以字符为单位处理数据,适用于处理文本文件,如.txt文件。

  2. 字符编码:字符流在读取和写入数据时会考虑字符编码,以确保正确地处理不同编码的文本数据。

  3. Reader 和 Writer:在Java中,字符流有两个主要的抽象类:Reader 用于读取字符数据,Writer 用于写入字符数据。

  4. 适合文本处理:字符流更适合于文本文件的读取和写入,因为它们能够处理字符编码、字符集等字符相关的问题。

  • 如果您需要处理文本文件,特别是需要考虑字符编码和字符集的情况下,建议使用字符流(Reader和Writer)。
  • 如果您需要处理二进制文件或以字节为单位的数据,使用字节流(InputStream和OutputStream)更合适。
  • 在实际应用中,通常会根据需要选择合适的流类型,以确保数据的正确处理和高效性能。

JAVA字节流

InputStream// :这个抽象类是字节输`入`流的所有类的超类
OutputStream// :这个抽象类是字节输`出`流的所有类的超类
// 子类名特点:子类名称都是以其父亲名作为子类名的后缀

FileOutputStream// :文件输出流用于将数据写入File

字节流写入的三种方式:

JAVA - File类、字节流、字符流、特殊操作流_第4张图片

字节缓冲流

JAVA - File类、字节流、字符流、特殊操作流_第5张图片

字符流

  • 汉字在存储的时候,无论哪种编码存储,第一个字节都是负数,所以才有了字符流专门解析文本
  • 字符流 = 字节流 + 编码表

编码和解码

编码:byte[] getBytes()
解码:String(byte[] bytes)

字符流抽象基类

  • Reader:字符输入流的抽象类
  • Writer:字符输出流的抽象类
  • 字符流中和编码解码问题相关的两个类:InputStreamReader; OutputStreamWriter;

字符流写数据的五种方式

JAVA - File类、字节流、字符流、特殊操作流_第6张图片

字符流读数据的两种方式

JAVA - File类、字节流、字符流、特殊操作流_第7张图片

字符缓冲流

  • BufferedWriter:将文本写入字符输出流,缓冲字符,提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小。默认值足够大,可用于大多数情况
  • BufferedReader:以读取文本在字符输入流,缓冲字符,提供字符,数组和行的高效读取,可以指定缓冲区大小。默认值足够大,可用于大多数情况

字符缓冲流的特有功能
JAVA - File类、字节流、字符流、特殊操作流_第8张图片

IO流小结

JAVA - File类、字节流、字符流、特殊操作流_第9张图片

Properties

JAVA - File类、字节流、字符流、特殊操作流_第10张图片

3.特殊操作流-标准输入输出流

在这里插入图片描述
键盘录入类: new Scanner(System.in)

  • 标准输出流
    在这里插入图片描述

字节打印流

  • 字节打印流:PrintStream
  • 字符打印流:PrintWriter

字符打印流

  • 字符打印流PrintWriter
    JAVA - File类、字节流、字符流、特殊操作流_第11张图片

对象序列化

JAVA - File类、字节流、字符流、特殊操作流_第12张图片

对象序列化流

JAVA - File类、字节流、字符流、特殊操作流_第13张图片

serialVersionUID&transient

JAVA - File类、字节流、字符流、特殊操作流_第14张图片

对象反序列化流

JAVA - File类、字节流、字符流、特殊操作流_第15张图片

你可能感兴趣的:(java,开发语言)