Java程序:读取并排序整数到新文件

5星 · 超过95%的资源 需积分: 50 17 下载量 94 浏览量 更新于2024-09-07 4 收藏 2KB TXT 举报
本代码示例展示了如何在Java中读取一个名为"data.txt"的文本文件,该文件包含一组用逗号分隔的整数,然后对这些整数进行排序并将排序后的结果写入另一个文件"number.txt"。以下是详细的步骤和知识点: 1. **文件输入输出流处理**: - `FileInputStream` 和 `FileOutputStream` 是用于读取和写入文件的基本类,但在这个例子中,代码使用了 `Scanner` 类来逐行读取文本文件。`Scanner` 可以方便地处理字符串输入。 2. **读取文件中的整数**: - 使用 `Scanner` 的 `hasNextLine()` 方法读取文件内容,直到没有更多的行。每行被存储为字符串 `s`,然后通过 `split()` 方法按照指定的分隔符(这里是逗号)分割成一个字符串数组 `c`。 - 将字符串数组转换为整数数组 `b`,以便进行后续排序操作。`Integer.parseInt()` 方法将字符串转换为整数。 3. **排序算法**: - 代码使用了简单的冒泡排序算法,遍历数组,比较相邻元素,如果前一个元素大于后一个元素,则交换它们的位置。这个过程重复进行,直到整个数组排序完成。 - 使用变量 `temp` 临时存储元素,以便在交换过程中保持数据的正确性。 4. **输出排序后的整数**: - 排序完成后,通过 `System.out.print()` 方法打印排序后的整数,并使用 `System.out.print('')` 换行,使输出整洁。 5. **构建新的字符串**: - 为了写入到另一个文件,将排序后的整数数组转换为一个字符串 `s1`,每个元素之间用逗号分隔。 6. **文件输出**: - 创建一个 `FileOutputStream` 对象 `f2`,指向目标文件"number.txt"。使用 `write()` 方法将 `s1` 字符节数组写入文件,`flush()` 方法确保数据立即写入,最后调用 `close()` 关闭流以释放资源。 7. **异常处理**: - 当代码执行过程中可能遇到 `IOException`,比如文件不存在或读写权限问题,会捕获此类异常,并在控制台打印错误信息。 这段代码演示了在Java中使用标准库实现文件读取、数据处理(排序)和文件输出的基本流程,适合初学者学习文件操作和基本的排序算法。