📜  将 arraylist 写入输出流 java 字节文件 - Java (1)

📅  最后修改于: 2023-12-03 15:39:11.847000             🧑  作者: Mango

将 ArrayList 写入输出流 Java 字节文件

在 Java 中,我们可以使用 ObjectOutputStream 来将数据以字节形式写入输出流。而 ArrayList 是一个常用的容器类,它可以存储任意数据类型的数据。在本文中,我们将介绍如何将 ArrayList 写入输出流,并将其转换为字节文件。

1. 创建 ArrayList

首先,我们需要创建一个 ArrayList,并向其中添加一些数据。

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("Hello");
        list.add("World");
        list.add("Java");
        System.out.println(list);
    }
}

输出结果:

[Hello, World, Java]
2. 写入字节输出流

接下来,我们将创建一个字节输出流,将 ArrayList 写入其中。

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("Hello");
        list.add("World");
        list.add("Java");

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos;
        try {
            oos = new ObjectOutputStream(baos);
            oos.writeObject(list);
            oos.flush();
            oos.close();
            baos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        byte[] bytes = baos.toByteArray();
        System.out.println(bytes);
    }
}

输出结果:

[B@16b98e56
3. 将字节转换为文件

最后,我们使用 FileOutputStream 将字节数组写入到文件中。

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("Hello");
        list.add("World");
        list.add("Java");

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos;
        try {
            oos = new ObjectOutputStream(baos);
            oos.writeObject(list);
            oos.flush();
            oos.close();
            baos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        byte[] bytes = baos.toByteArray();

        try {
            FileOutputStream fos = new FileOutputStream("data.bin");
            fos.write(bytes);
            fos.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这段代码将字节数组保存到名为 data.bin 的文件中。

结论

在本文中,我们演示了如何将 ArrayList 写入字节输出流,并将其转换为文件。此方法适用于将任意对象写入字节输出流并转换为文件的场景。