Java编程冒险 - 第十三节课(输入输出(IO)流)

65 阅读2分钟

欢迎回来,编程冒险者们!在上一节中,我们掌握了强大的Java集合框架,今天我们将进入一个更加刺激的领域——输入输出(IO)流。想象一下,你的程序像一名勇敢的探险家,通过IO流与外部世界进行交流,无论是从神秘的文件中挖掘宝藏,还是向遥远的网络发送加密信件,IO流都是你不可或缺的伙伴。准备好让你的Java程序与世界交流了吗?让我们学习如何有效地使用Java的IO类库吧!

  1. 输入输出流——数据的桥梁 在Java中,所有的输入和输出操作都是通过IO流来完成的。理解并掌握IO流的概念对于处理各种数据非常重要。
  • 字节流——基础的IO操作 字节流以8位字节为单位进行数据传输,适用于所有类型的数据,包括文本、图片、音频等。FileInputStreamFileOutputStream是常用的字节流类:
try {
    // 读取文件
    FileInputStream fis = new FileInputStream("input.txt");
    int data;
    while ((data = fis.read()) != -1) {
        System.out.print((char) data);
    }
    fis.close();

    // 写入文件
    FileOutputStream fos = new FileOutputStream("output.txt");
    fos.write("Hello, World!".getBytes());
    fos.close();
} catch (IOException e) {
    e.printStackTrace();
}
  • 字符流——文本的IO操作 字符流以16位字符为单位进行数据传输,专门用于处理文本数据。FileReaderFileWriter是常用的字符流类:
try {
    // 读取文件
    FileReader fr = new FileReader("input.txt");
    int data;
    while ((data = fr.read()) != -1) {
        System.out.print((char) data);
    }
    fr.close();

    // 写入文件
    FileWriter fw = new FileWriter("output.txt");
    fw.write("Hello, World!");
    fw.close();
} catch (IOException e) {
    e.printStackTrace();
}
  • 过滤流——增强的IO功能 过滤流本身并不直接与数据源或目标进行通信,而是“包装”其他流,提供额外的功能,如缓冲、转换字符集等。BufferedReaderBufferedWriter是常用的过滤流类:
try {
    // 带缓冲的读取
    BufferedReader br = new BufferedReader(new FileReader("input.txt"));
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
    br.close();

    // 带缓冲的写入
    BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"));
    bw.write("Hello, World!");
    bw.newLine(); // 写入新行
    bw.close();
} catch (IOException e) {
    e.printStackTrace();
}
  1. 总结——流畅的数据交换 今天,我们学习了Java中的输入输出流,包括字节流和字符流的操作,以及如何使用过滤流来增强IO功能。这些知识将帮助我们构建能够处理各种数据类型的健壮应用程序。在下一节课程中,我们将探索Java的网络编程,这将使我们的程序能够与互联网上的其他计算机和服务进行通信。准备好拓展你的Java技能,进入网络世界了吗?让我们继续前进,开启网络编程的新篇章!