Java字符流写入文件实战:FileWriter与BufferedWriter

需积分: 10 1 下载量 9 浏览量 更新于2024-07-10 收藏 204KB PPT 举报
"Java实例展示了如何使用字符流方式写入文件,主要涉及了`java.io`包中的`InputStreamReader`, `BufferedReader`, `FileWriter`, 和`BufferedWriter`类。此代码创建了一个简单的文本输入系统,允许用户通过控制台输入字符串,并将这些字符串写入指定的文件"dataFile.txt"中。当用户输入空字符串时,程序停止并关闭流。" 在Java中,输入流(Input Stream)和输出流(Output Stream)是用于处理数据传输的核心概念。它们被设计用来处理不同类型的I/O操作,包括从键盘、文件、网络等源读取数据,以及向显示器、文件或其他目的地写入数据。Java的I/O机制是基于流的,意味着数据以连续的序列形式传输。 在Java的`java.io`包中,有两种主要的流类型: 1. 字节流(Byte Streams):以字节为单位处理数据,如`InputStream`和`OutputStream`及其子类。例如,`FileInputStream`用于从文件读取字节,`FileOutputStream`用于向文件写入字节。 2. 字符流(Character Streams):以字符为单位处理数据,适合处理文本内容。Java提供了`Reader`和`Writer`作为字符流的基类,如`InputStreamReader`, `BufferedReader`, `FileWriter`和`BufferedWriter`。在这个实例中,`InputStreamReader`和`BufferedReader`用于从`System.in`读取用户输入的字符流,而`FileWriter`和`BufferedWriter`则用于将这些字符写入文件。 在上述代码中,`InputStreamReader`是连接`System.in`(标准输入)到字符流的桥梁,它创建了一个从键盘读取字符的流。`BufferedReader`用于缓冲从`InputStreamReader`读取的字符,提高读取效率。然后,`FileWriter`初始化一个指向文件"dataFile.txt"的输出流,`BufferedWriter`在此之上提供缓冲功能,优化写入操作。 核心的读写方法包括: - `BufferedReader`的`readLine()`方法用于读取用户输入的一行字符串。 - `BufferedWriter`的`write()`方法写入字符串到文件,`newLine()`方法插入一个换行符。 当用户输入空字符串时,循环结束,`bw.close()`和`br.close()`分别关闭`BufferedWriter`和`BufferedReader`,确保所有数据都被正确写入并释放系统资源。 Java的输入输出流体系庞大且功能丰富,包含许多子类和辅助类,如过滤流(Filter Streams)和数据流(Data Streams),它们提供额外的功能,如数据转换、缓冲和错误处理,以满足各种复杂的I/O需求。在实际编程中,根据具体需求选择适当的流类是至关重要的。