提示信息

Java字符流的使用

配角 已关注

Java字符流主要用于处理字符数据,包括读取字符数据、写入字符数据和操作字符数据。常见的字符流类有FileReader、FileWriter、BufferedReader和BufferedWriter。

  1. FileReader和FileWriter:
    FileReader类用于读取字符数据,可以从文件中读取字符内容。使用FileReader需要先创建一个File对象,然后传入File对象的路径作为参数创建FileReader对象。接下来,通过调用FileReader对象的read()方法可以读取一个字符,或者通过调用read(char[] cbuf)方法读取一组字符。最后,要关闭FileReader对象。

FileWriter类用于写入字符数据,可以将字符内容写入到文件中。使用FileWriter需要先创建一个File对象,然后传入File对象的路径作为参数创建FileWriter对象。接下来,通过调用FileWriter对象的write()方法可以写入一个字符,或者通过调用write(char[] cbuf)方法写入一组字符。最后,要关闭FileWriter对象。

示例代码如下:

  1. // 读取字符数据
  2. File file = new File("example.txt");
  3. FileReader reader = new FileReader(file);
  4. int data = reader.read();
  5. while (data != -1) {
  6. System.out.print((char) data);
  7. data = reader.read();
  8. }
  9. reader.close();
  10. // 写入字符数据
  11. File file = new File("example.txt");
  12. FileWriter writer = new FileWriter(file);
  13. writer.write("Hello, world!");
  14. writer.close();
  1. BufferedReader和BufferedWriter:
    BufferedReader类是字符缓冲输入流,用于提供高效的字符输入流读取功能。使用BufferedReader需要先创建一个FileReader对象,然后将FileReader对象作为参数创建BufferedReader对象。接下来,通过调用BufferedReader对象的readLine()方法可以一次读取一行字符数据。最后,要关闭BufferedReader对象。

BufferedWriter类是字符缓冲输出流,用于提供高效的字符输出流写入功能。使用BufferedWriter需要先创建一个FileWriter对象,然后将FileWriter对象作为参数创建BufferedWriter对象。接下来,通过调用BufferedWriter对象的write()方法可以写入字符数据。最后,要关闭BufferedWriter对象。

示例代码如下:

  1. // 读取一行字符数据
  2. File file = new File("example.txt");
  3. FileReader reader = new FileReader(file);
  4. BufferedReader bufferedReader = new BufferedReader(reader);
  5. String line = bufferedReader.readLine();
  6. while (line != null) {
  7. System.out.println(line);
  8. line = bufferedReader.readLine();
  9. }
  10. bufferedReader.close();
  11. // 写入字符数据
  12. File file = new File("example.txt");
  13. FileWriter writer = new FileWriter(file);
  14. BufferedWriter bufferedWriter = new BufferedWriter(writer);
  15. bufferedWriter.write("Hello, world!");
  16. bufferedWriter.newLine(); // 换行
  17. bufferedWriter.write("Java字符流的使用");
  18. bufferedWriter.close();
    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
配角 关注 已关注

最近一次登录:2024-10-26 14:52:40   

暂时还没有签名,请关注我或评论我的文章

荷叶小露
10月19日

文章对FileReaderFileWriter的用法讲得很清晰,示例代码实用性强。

圣火令
10月23日

对于新学Java的人,这篇描述文件字符流的内容非常直观,方便上手练习。

不诉离殇
10月25日

在强调BufferedWriter的使用优势时,可以补充其为什么高效,底层实现是什么。

烟花
11月03日

加入一些异常处理可能会更好,像使用try-catch-finally结构来管理资源。比如:

try(FileReader reader = new FileReader(file)) {
    // 业务逻辑
} catch(IOException e) {
    // 异常处理
}
石头
11月13日

建议加上关于字符编码的说明,不同编码可能会导致数据读取不一致的问题。

南柯一梦
11月14日

对Java IO流不熟的人,可以参阅Java IO指南以获得更多背景信息。

我不想逃
11月21日

建议示例代码中使用try-with-resources,这样可以更加安全地关闭流,效果也更好。

雨夜故客
11月28日

作者提到的类在日常开发中非常常用,学习这些有助于理解Java的IO机制。

韦铖昊
12月07日

代码中的例子操作文件example.txt,若不存在会抛异常,可说明如何预先检查文件存在性。

雨莹
12月18日

读写文件的场景很常见,建议在项目中也尝试用BufferedReaderBufferedWriter来优化读写性能。

×
免费图表工具,画流程图、架构图