
2018版《04747 Java语言程序设计(一)》第七至第十章知识点总结
5星
- 浏览量: 0
- 大小:None
- 文件类型:DOCX
简介:
本简介为2018年版本《04747 Java语言程序设计(一)》教材中第七至第十章的知识点总结,涵盖面向对象编程、继承与接口等核心概念。
Java语言程序设计(一)第七章至第十章知识点总结
**第七章:输入与输出流**
### 1. 数据流的基本概念
- Java中使用抽象的“流”来表示不同类型的输入源或输出目标,其中数据成为数据流,并通过统一接口进行操作。
- 数据流是一系列有顺序、有起点和终点的数据字节集合。无论是从键盘接收信息还是向文件写入内容,都可以利用数据流实现。
- 流可分为输入流与输出流两大类:前者只能读取不能写入;后者则相反,只允许写入不允许读取。
- 使用数据流时必须确保有一个明确的源与其连接(如`FileInputStream in = new FileInputStream(javatest.txt);`)。
### 2. Java.io 包中的四个基本抽象类
- `InputStream`, `OutputStream`, `Reader`, 和 `Writer`
### 3. 输入数据流的主要操作方法
- **int read()**: 从输入流中读取一个字节的数据。
- **int read(byte[] b)**: 将多个字节一次性读入到数组b中直至填满整个数组。
- **int read(byte[] b, int off, int len)**: 按指定长度len从数据流开始位置off处读取,并返回实际读取的字节数量。
- **void close()**: 关闭当前的数据流对象,释放相关资源。
- **int available()**: 返回可以立即从中读取而不需要阻塞的最大字节数量。
- **long skip(long l)**: 跳过数据流中的l个字节不进行处理,并返回实际跳过的字符数。
### 4. 回推操作
- 使用`markSupported()`方法来检测当前输入流是否支持回退功能;
- `mark(int)`用于标记当前位置并分配一个大小至少为指定参数的缓冲区;
- 调用`reset()`将读取指针重新定位至最近一次调用`mark()`时的位置。
### 5. 输出数据流的主要操作方法
- **void write(int i)**: 将单个字节i写入到输出流中。
- **void write(byte[] b)**: 向输出流一次性写出整个数组b的内容(长度为b.length);
- **void write(byte[] b, int off, int len)**: 从下标off开始,向数据流里输入len个字节的元素值;
- 关闭时调用**close()**, 刷新缓冲区则使用**flush()**
### 6.二进制流
- `FileInputStream`和`FileOutputStream`类用于处理文件I/O操作;
- 缓冲版本如BufferedInputStream 和 BufferedOutputStream通过增加缓存来提高性能,属于过滤器类型的数据流。
- 写入或读取数据时采用块的方式进行缓冲区的填充与清空。通常在关闭输出流之前先调用`flush()`以确保所有未写入的内容都被发送出去。
### 7. DataInputStream 和 DataOutputStream
- `DataInputStream`: 提供了如readInt()、readBoolean()等方法来读取数据;
- 相应地,`DataOutputStream`则包含writeInt(int)和writeBoolean(boolean)等用于向流中写入特定类型的数据的方法。
- 对象的序列化与反序列化由ObjectInputStream 和 ObjectOutputStream 实现。其中 readObject() 方法将对象从输入流读取出来并以 Object 类型返回,后续需要转换为具体类进行操作。
全部评论 (0)


