Java-IO流

目录

1.IO流的概述

2.IO流的分类

2.1. 字节流

2.2. 字符流


1.IO流的概述

IO 流是用于在程序与外部数据源(如文件、网络连接等)之间进行数据输入和输出操作的机制。

它主要具有以下特点:

1. 输入流:将数据从外部源读取到程序中。

2. 输出流:将程序中的数据发送到外部目标。

3. 分类:包括字节流和字符流,分别用于处理字节和字符数据。

4. 作用:实现数据的传输和交互,是程序与外界进行数据交换的重要途径。

2.IO流的分类

2.1. 字节流

以字节为单位进行数据传输,包括InputStream(输入字节流)和OutputStream(输出字节流)。

其中InputStream类和OutputStream类都为抽象类,我们实现的类都为InputStream和OutputStream的子类例如:

字节流的常见子类包括:

• FileInputStream:文件输入流,用于从文件中读取字节数据。

• BufferedInputStream:带缓冲区的输入字节流,提高读取性能。

• ObjectInputStream:对象字节输入流,用于读取对象数据。

• FileOutputStream:文件输出流,用于将字节数据写入文件。

• BufferedOutputStream:带缓冲区的输出字节流,提高写入性能。

• ObjectOutputStream:对象字节输出流,用于写入对象数据。

这些子类在字节流的基础上提供了不同的功能和特性,以满足不同的需求。例如,BufferedInputStream和BufferedOutputStream通过使用缓冲区来提高读写效率,而ObjectInputStream和ObjectOutputStream则用于对象的序列化和反序列化。
 

文件读取:

import java.io.FileInputStream;
import java.io.IOException;

public class ByteStreamReadExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("your_file_path")) {
            int data;
            while ((data = fis.read())!= -1) {
                System.out.print((char) data);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

文件写入:

import java.io.FileOutputStream;
import java.io.IOException;

public class ByteStreamWriteExample {
    public static void main(String[] args) {
        try (FileOutputStream fos = new FileOutputStream("output_file_path")) {
            String data = "这是要写入的字节数据";
            fos.write(data.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2.2. 字符流

以字符为单位进行数据传输,包括Reader(输入字符流)和Writer(输出字符流)。

其中Reader类和Writer类都为抽象类,我们实现的类都为Reader和Writer的子类。

字符流是一种以字符为单位进行读写操作的流。字符流的两个抽象父类分别是字符输出流(Writer)和字符输入流(Reader)。Writer 类的子类包括 OutputStreamWriter 类,Reader 类的子类包括 InputStreamReader 类。字符流的常见子类及使用方法如下:

• FileReader:用于读取字符文件。

• FileWriter:用于写入字符文件。

• BufferedReader:提供缓冲功能的字符输入流,支持读取一行数据。

• BufferedWriter:带缓冲的字符输出流,支持写入字符串和换行操作。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class CharacterStreamExample {
    public static void main(String[] args) throws IOException {
        // 创建一个 FileReader 对象,用于读取字符文件
        FileReader reader = new FileReader("example.txt");

        // 创建一个 BufferedReader 对象,提高读取性能
        BufferedReader bufferedReader = new BufferedReader(reader);

        String line;
        while ((line = bufferedReader.readLine())!= null) {
            System.out.println(line);
        }

        // 关闭资源
        bufferedReader.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值