📅  最后修改于: 2023-12-03 15:39:11.847000             🧑  作者: Mango
在 Java 中,我们可以使用 ObjectOutputStream 来将数据以字节形式写入输出流。而 ArrayList 是一个常用的容器类,它可以存储任意数据类型的数据。在本文中,我们将介绍如何将 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]
接下来,我们将创建一个字节输出流,将 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
最后,我们使用 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 写入字节输出流,并将其转换为文件。此方法适用于将任意对象写入字节输出流并转换为文件的场景。