首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java 基础教学:Java 高级特性与实战-输入输出流

Java 基础教学:Java 高级特性与实战-输入输出流

作者头像
世间万物皆对象
发布2024-11-09 08:35:21
发布2024-11-09 08:35:21
3230
举报
文章被收录于专栏:startstart

Java I/O(输入输出)流是用于处理输入和输出的类的集合,它们在java.io包中。I/O流分为两大类:字节流(用于处理原始二进制数据)和字符流(用于处理文本数据)。

字节流与字符流的区别

字节流
  • 字节流以8位字节为单位进行输入和输出,是所有类型数据(包括文本文件、音频、视频等)的通用流类。
  • 字节流主要用于处理非文本数据,如二进制文件和对象序列化等。
  • java.io包中,InputStreamOutputStream是所有字节流类的基类。
字符流
  • 字符流以16位Unicode字符为单位进行输入和输出,专门用于处理文本数据。
  • 字符流自动处理字符编码问题,可以避免在字节和字符之间转换时出现的字符集错误。
  • java.io包中,ReaderWriter是所有字符流类的基类。

文件的读写操作

文件读取
字节流读取

使用FileInputStream可以读取文件的字节数据。

代码语言:javascript
复制
import java.io.FileInputStream;
import java.io.IOException;

public class ByteStreamReadExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.txt")) {
            int i;
            while ((i = fis.read()) != -1) { // 读取文件内容到达文件末尾时返回-1
                System.out.print((char) i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
字符流读取

使用FileReader可以读取文件的字符数据。

代码语言:javascript
复制
import java.io.FileReader;
import java.io.IOException;

public class CharStreamReadExample {
    public static void main(String[] args) {
        try (FileReader fr = new FileReader("example.txt")) {
            int i;
            while ((i = fr.read()) != -1) { // 读取文件内容到达文件末尾时返回-1
                System.out.print((char) i);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
文件写入
字节流写入

使用FileOutputStream可以写入字节数据到文件。

代码语言:javascript
复制
import java.io.FileOutputStream;
import java.io.IOException;

public class ByteStreamWriteExample {
    public static void main(String[] args) {
        String data = "Hello, World!";
        try (FileOutputStream fos = new FileOutputStream("example.txt")) {
            fos.write(data.getBytes()); // 将字符串转换为字节数据并写入
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
字符流写入

使用FileWriter可以写入字符数据到文件。

代码语言:javascript
复制
import java.io.FileWriter;
import java.io.IOException;

public class CharStreamWriteExample {
    public static void main(String[] args) {
        String data = "Hello, World!";
        try (FileWriter fw = new FileWriter("example.txt")) {
            fw.write(data); // 直接写入字符串
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

总结

字节流和字符流是Java I/O流的两种基本形式,它们分别以字节和字符为单位进行数据的读取和写入。字节流主要用于处理原始二进制数据,而字符流主要用于处理文本数据。在进行文件读写操作时,应根据数据的类型选择合适的流类。正确地使用I/O流可以帮助我们高效地进行数据的输入和输出操作。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 字节流与字符流的区别
    • 字节流
    • 字符流
  • 文件的读写操作
    • 文件读取
      • 字节流读取
      • 字符流读取
    • 文件写入
      • 字节流写入
      • 字符流写入
  • 总结
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档