Java程序读写TXT文件示例

需积分: 12 2 下载量 17 浏览量 更新于2024-09-18 收藏 2KB TXT 举报
该代码示例展示了如何在Java中读取和写入TXT文本文件。程序首先创建一个名为`people.txt`的文件,并写入多行数据,每行包含姓名、性别、年龄和薪资。然后,它读取这个文件,将每一行的数据存储到一个ArrayList中,接着对数据进行处理,通过逗号分隔值(CSV)解析每一行,并将这些值分配给一个名为`Names`的实体类的对象属性。最后,程序计算并输出所有人的总薪资。 在这个Java程序中,有以下几个关键知识点: 1. **文件I/O操作**: - 使用`FileWriter`类写入文本文件。`FileWriter`构造函数接收一个文件路径作为参数,然后可以调用`write()`方法向文件中写入内容。 - 使用`FileInputStream`打开一个文件,然后通过`BufferedReader`进行读取。`BufferedReader`提供`readLine()`方法,可以逐行读取文件内容。 2. **字符编码**: - 文件读写时指定字符编码。在创建`InputStreamReader`时,使用`"GBK"`作为编码,确保正确处理中文字符。 3. **异常处理**: - 使用`try-catch-finally`块来处理可能出现的异常,如`IOException`。在`finally`块中,确保所有的流(`inputStream`和`bufReader`)都被关闭,以释放系统资源。 4. **集合操作**: - 使用`ArrayList`存储读取到的文件行数据,以及`Names`对象。`add()`方法用于向列表中添加元素。 - `List<Names>`类型的`alist`用于存储解析后的`Names`对象。 5. **字符串处理**: - `split(",")`方法用于根据逗号将字符串分割成数组。这样可以方便地获取CSV数据的各个部分。 6. **数据转换**: - `Integer.parseInt(sArray[3])`将字符串形式的数字转换为整型,以便于计算。 7. **实体类(Names)**: - `Names`类(虽然在提供的代码中没有定义,但可以假设它有`name`、`age`、`many`和`sex`属性),用于封装读取的数据。`set`方法用于设置属性值。 8. **数据计算**: - 在循环中,程序遍历`alist`,提取每个`Names`对象的`many`属性并累加,计算所有人的总薪资。 这个程序可以作为学习Java文件I/O操作、字符串处理、集合操作和异常处理的基础示例。通过这个例子,开发者可以理解如何在实际项目中处理文本文件数据。