欢迎访问宙启技术站
智能推送

Java中的字节流函数

发布时间:2023-06-15 21:18:42

Java中提供了许多字节流函数,用于访问和操作字节流。在这篇文章中,我们将介绍最常用的字节流函数。

Java中的字节流函数主要分为两种类型:输入字节流函数和输出字节流函数。输入字节流函数主要用于读取数据,而输出字节流函数主要用于写入数据。以下是一些Java中常用的字节流函数:

1. FileInputStream

FileInputStream是Java用于读取文件的输入流类。它的主要作用是从文件中读取字节。FileInputStream类是InputStream的子类。

使用FileInputStream时,要先创建一个FileInputStream对象并传入要读取的文件路径,然后调用read()方法读取文件中的数据。如果read()方法返回-1,则表示文件已经读取完毕。下面是一个示例代码:

try {
    FileInputStream fis = new FileInputStream("test.txt");  // 创建FileInputStream对象
    int data = fis.read();   // 读取文件中的一个字节
    while (data != -1) {     // 读取文件中的所有字节
        System.out.print((char) data);  // 打印字节
        data = fis.read();   // 读取下一个字节
    }
    fis.close();   // 关闭FileInputStream
} catch (IOException e) {
    e.printStackTrace();
}

2. FileOutputStream

FileOutputStream是Java用于写入文件的输出流类。它的主要作用是将字节写入到文件中。FileOutputStream类是OutputStream的子类。

使用FileOutputStream时,要先创建一个FileOutputStream对象并传入要写入的文件路径,然后调用write()方法写入数据。下面是一个示例代码:

try {
    FileOutputStream fos = new FileOutputStream("test.txt");  // 创建FileOutputStream对象
    String str = "Hello, World!";  // 要写入的数据
    byte[] data = str.getBytes();  // 将字符串转换为字节数组
    fos.write(data);   // 写入数据
    fos.close();   // 关闭FileOutputStream
} catch (IOException e) {
    e.printStackTrace();
}

3. BufferedInputStream

BufferedInputStream是Java中带缓冲区的输入流类。它的主要作用是缓存输入流中的数据,以提高输入效率。BufferedInputStream类是InputStream的子类。

使用BufferedInputStream时,要先创建一个InputStream对象(如FileInputStream),然后再将其传入BufferedInputStream的构造函数中。下面是一个示例代码:

try {
    FileInputStream fis = new FileInputStream("test.txt");  // 创建FileInputStream对象
    BufferedInputStream bis = new BufferedInputStream(fis);  // 创建BufferedInputStream对象
    int data = bis.read();   // 从缓冲区中读取一个字节
    while (data != -1) {     // 读取文件中的所有字节
        System.out.print((char) data);  // 打印字节
        data = bis.read();   // 从缓冲区中读取下一个字节
    }
    bis.close();   // 关闭缓冲区
    fis.close();   // 关闭FileInputStream
} catch (IOException e) {
    e.printStackTrace();
}

4. BufferedOutputStream

BufferedOutputStream是Java中带缓冲区的输出流类。它的主要作用是将数据先缓存起来,然后一次性写入文件,以提高输出效率。BufferedOutputStream类是OutputStream的子类。

使用BufferedOutputStream时,要先创建一个OutputStream对象(如FileOutputStream),然后再将其传入BufferedOutputStream的构造函数中。下面是一个示例代码:

try {
    FileOutputStream fos = new FileOutputStream("test.txt");  // 创建FileOutputStream对象
    BufferedOutputStream bos = new BufferedOutputStream(fos);  // 创建BufferedOutputStream对象
    String str = "Hello, World!";  // 要写入的数据
    byte[] data = str.getBytes();  // 将字符串转换为字节数组
    bos.write(data);   // 写入数据
    bos.flush();   // 将缓冲区中的数据写入文件
    bos.close();   // 关闭缓冲区
    fos.close();   // 关闭FileOutputStream
} catch (IOException e) {
    e.printStackTrace();
}

5. DataInputStream

DataInputStream是Java中用于读取基本数据类型的输入流类。它的主要作用是按照二进制格式读取数据。DataInputStream类是InputStream的子类。

使用DataInputStream时,要先创建一个InputStream对象(如FileInputStream),然后再将其传入DataInputStream的构造函数中。下面是一个示例代码:

try {
    FileInputStream fis = new FileInputStream("data.txt");  // 创建FileInputStream对象
    DataInputStream dis = new DataInputStream(fis);  // 创建DataInputStream对象
    int intValue = dis.readInt();   // 读取int类型数据
    double doubleValue = dis.readDouble();   // 读取double类型数据
    boolean boolValue = dis.readBoolean();   // 读取boolean类型数据
    dis.close();   // 关闭DataInputStream
    fis.close();   // 关闭FileInputStream
} catch (IOException e) {
    e.printStackTrace();
}

6. DataOutputStream

DataOutputStream是Java中用于写入基本数据类型的输出流类。它的主要作用是按照二进制格式写入数据。DataOutputStream类是OutputStream的子类。

使用DataOutputStream时,要先创建一个OutputStream对象(如FileOutputStream),然后再将其传入DataOutputStream的构造函数中。下面是一个示例代码:

try {
    FileOutputStream fos = new FileOutputStream("data.txt");  // 创建FileOutputStream对象
    DataOutputStream dos = new DataOutputStream(fos);  // 创建DataOutputStream对象
    int intValue = 123;   // 要写入的int类型数据
    double doubleValue = 3.14;   // 要写入的double类型数据
    boolean boolValue = true;   // 要写入的boolean类型数据
    dos.writeInt(intValue);   // 写入int类型数据
    dos.writeDouble(doubleValue);   // 写入double类型数据
    dos.writeBoolean(boolValue);   // 写入boolean类型数据
    dos.close();   // 关闭DataOutputStream
    fos.close();   // 关闭FileOutputStream
} catch (IOException e) {
    e.printStackTrace();
}

这些函数是Java中最常用的字节流函数,能够满足大多数字节流操作的需求。要使用这些函数,需要对Java输入输出流的概念和基本操作有一定的了解。同时,也需要注意输入输出流操作中可能发生的异常情况,以保证程序的健壮性。