day09_字节流、字符流2
需积分: 0 166 浏览量
更新于2022-08-08
收藏 45KB DOCX 举报
Java中的字节流和字符流是处理数据输入输出的核心工具,它们主要用于读写文件、网络传输等场景。字节流处理的数据单位是字节,而字符流处理的是Unicode字符,适用于处理文本数据。
1. 字节输出流:
字节输出流(`OutputStream`类)用于写出字节数据。在练习一中,我们可以通过`FileOutputStream`写出单个字节,如字符'a'。在练习二中,我们可以使用`write(byte[])`方法一次性写出字节数组,例如写出字符串"I love java"的字节表示。
2. 文件的续写与换行:
练习三要求在已存在的文件末尾追加内容而不覆盖原有数据,这需要使用`FileOutputStream`的构造器指定追加模式(`new FileOutputStream(file, true)`)。然后通过循环写入"I love java",每次写完一行需要手动添加换行符('\n')。
3. 字节输入流:
字节输入流(`InputStream`类)用于读取字节数据。在练习四中,我们可以使用`FileInputStream`配合`read()`方法逐字节读取文件a.txt的内容,并将其输出到控制台。在练习五中,可以使用`read(byte[])`方法读取字节数组,然后转换为字符串显示。
4. 文件复制:
练习六要求使用字节流复制文件。这里可以创建两个`FileInputStream`和`FileOutputStream`,分别对应源文件和目标文件,然后通过循环读写字节完成复制。每次读写一个字节,直到源文件读完。
5. 字符输出流:
字符输出流(`Writer`类)处理Unicode字符,适合文本输出。练习七中,我们需要创建一个`BufferedWriter`,从控制台读取用户输入,每输入一行信息就写入文件Info.txt,直到输入"886"为止。
6. `Properties`与IO结合:
练习八涉及`Properties`类,它用于存储键值对。首先创建一个`Properties`实例,然后使用`load()`方法从score.txt文件读取数据。遍历`Properties`,查找键为"lisi"的项,如果找到就更新其值为100。使用`store()`方法将更新后的`Properties`写回文件。
7. 扩展题:
练习一要求统计test.txt中字符'a'的出现次数,可以使用`FileInputStream`读取文件,通过循环和条件判断计算字符'a'的出现频率。
练习二要求用户输入学生信息并保存到stu.txt。可以使用`BufferedReader`从控制台读取输入,直到用户输入"end",然后将每个学生信息写入`FileOutputStream`。
练习三需要将学员信息存储到文件中。创建一个`ArrayList<Student>`来保存学员,使用`PrintWriter`或`BufferedWriter`逐个写入学员信息,每个学员信息之间用逗号分隔。每个属性值应先转换为字符串再写入文件。
以上就是关于Java字节流和字符流的基本操作以及相关练习的解析,它们是Java进行数据I/O操作的基础,理解和掌握这些知识对于进行文件操作和网络通信至关重要。