1.File类的构造方法
File类的创建文件功能
File类的判断和获取功能
File类的删除功能
2.IO流 - 字节流、字符流
字节流
-
处理字节数据:字节流以字节为单位处理数据,适用于处理二进制文件(如图像、音频、视频文件)或以字节为基本单位的文本文件。
-
底层 I/O 操作:字节流通常用于执行底层I/O操作,因为它们可以直接读取和写入文件的字节数据。
-
InputStream 和 OutputStream:在Java中,字节流有两个主要的抽象类:InputStream 用于读取字节数据,OutputStream 用于写入字节数据。
-
不适合字符数据:虽然可以用字节流来处理字符数据,但它们不够方便,因为它们不会处理字符编码,可能会导致字符数据在不同编码下的错误解释。
字符流
-
处理字符数据:字符流以字符为单位处理数据,适用于处理文本文件,如.txt文件。
-
字符编码:字符流在读取和写入数据时会考虑字符编码,以确保正确地处理不同编码的文本数据。
-
Reader 和 Writer:在Java中,字符流有两个主要的抽象类:Reader 用于读取字符数据,Writer 用于写入字符数据。
-
适合文本处理:字符流更适合于文本文件的读取和写入,因为它们能够处理字符编码、字符集等字符相关的问题。
- 如果您需要处理
文本文件
,特别是需要考虑字符编码和字符集的情况下,建议使用字符流(Reader和Writer)。 - 如果您需要处理
二进制文件
或以字节为单位的数据,使用字节流(InputStream和OutputStream)更合适。 - 在实际应用中,通常会根据需要选择合适的流类型,以确保数据的正确处理和高效性能。
JAVA字节流
InputStream// :这个抽象类是字节输`入`流的所有类的超类
OutputStream// :这个抽象类是字节输`出`流的所有类的超类
// 子类名特点:子类名称都是以其父亲名作为子类名的后缀
FileOutputStream// :文件输出流用于将数据写入File
字节流写入的三种方式:
字节缓冲流
字符流
- 汉字在存储的时候,无论哪种编码存储,第一个字节都是负数,所以才有了字符流专门解析文本
- 字符流 = 字节流 + 编码表
编码和解码
编码:byte[] getBytes()
解码:String(byte[] bytes)
字符流抽象基类
- Reader:字符输入流的抽象类
- Writer:字符输出流的抽象类
- 字符流中和编码解码问题相关的两个类:InputStreamReader; OutputStreamWriter;
字符流写数据的五种方式
字符流读数据的两种方式
字符缓冲流
- BufferedWriter:将文本写入字符输出流,缓冲字符,提供单个字符,数组和字符串的高效写入,可以指定缓冲区大小。默认值足够大,可用于大多数情况
- BufferedReader:以读取文本在字符输入流,缓冲字符,提供字符,数组和行的高效读取,可以指定缓冲区大小。默认值足够大,可用于大多数情况
字符缓冲流的特有功能
IO流小结
Properties
3.特殊操作流-标准输入输出流
键盘录入类: new Scanner(System.in)
- 标准输出流
字节打印流
- 字节打印流:PrintStream
- 字符打印流:PrintWriter
字符打印流
- 字符打印流PrintWriter