I/O流
1. Java流的分类
(1)字节流
字节输入流
- FileInputStream
- PipedInputStream
- ObjectInputStream
- ByteArrayInputStream
- SequenceInputStream
- FilterInputStream
- DataInputStream
- BufferedInputStream
- PushbackInputStream
字节输出流
-
FileOutputStream
-
PipedOutputStream
-
ObjectOutputStream
-
ByteArrayOutputStream
-
FilterOutputStream
- DataOutputStream
- BufferedOutputStream
- PushbackOutputStream
(2)字符流
字符输入流
- InputStreamReader
- FileReader
- CharArrayReader
- PipedReader
- BufferedReader
- StringReader
- FilterReader
字符输出流
- OutputStreamWriter
- FileWriter
- CharArrayWriter
- PipedWriter
- BufferedWriter
- StringWriter
- FilterWriter
- PrintWriter
2. 字节流InputStream和OutputStream的子类分别有哪些,举例说明使用场景,以及与其对应的字符流。
字节流 | 字符流 | 使用场景 |
---|---|---|
FileInputSream | FileReader | 读取文件 |
FileOutputStream | FileWriter | 写入文件 |
PipedInputStream | PipedReader | 线程间信息传递 |
PipedOutputStream | PipedWriter | 线程间信息传递 |
ObjectInputStream | – | 反序列化 |
ObjectOutputStream | – | 序列化 |
ByteArrayInputStream | CharArrayReader | 读取内存 |
ByteArrayOutputStream | CharArrayWriiter | 写入内存 |
SequenceInputStream | – | 多个流的合并 |
FilterInputStream | FilterWriter | 读取特定数据类型 |
FilterOutputStream | FilterReader | 读取特定数据类型 |
3. 字节流与字符流的相互转化,Java对此提供的支持。
- 输入字节流 转为 字符流:
InputStreamReader(InputStream in);
- 输出字符流 转为 字节流:
OutputStreamWriter(OutputStream out);
PrintWriter(OutputStream out);
4. Java中的过滤流(流的装配)有什么作用?请举例说明常用的过滤流。
- 通过DataInputSteam和DataOutputStream读取和写入特定类型数据
- 通过带缓冲区的BufferedInputSream和BufferedOutputStream实现一次性读写一行,提高效率
- 通过流的装配综合使用不同流功能的套用
5. 流的序列化与反序列化,Java对此提供的支持。
- 序列化:将内存中的动态对象表达成为可以传输的串的形式
- 反序列化:将接收到的串序列还原为对象存在内存中
- 主要用于网络传输和介质存储,Java提供了ObjectInputStream和ObjectOutputStream
6. Java中File类及其作用。
Java为文件操作提供的相应类和接口,FIle类主要用于表示一个文件对象,用于文件名处理,文件属性测试,文件信息和文件删除,对目录操作。
7. Java对文件的读写提供的支持。
为文件读写提供了read(),write()方法,提供了对文件属性的相关操作,提供了四种读写模式以及随机文件操作