gpt4 book ai didi

Java 二进制 IO 写入和读取

转载 作者:行者123 更新时间:2023-11-30 05:58:57 25 4
gpt4 key购买 nike

我有这种结构,我想读取和写入文件,并且我想以最快的方式完成它。

class Map
{
String name;
int tiles[][];
}

执行此操作的最佳方法是什么?我主要是一名 C++ 程序员,我不知道在 Java 中执行此操作的最佳方法。看起来应该很简单,但我不知道如何在Java中进行二进制io。

这是我到目前为止所创建的:

void Write(String fileName)
{
final ObjectOutputStream oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(fileName)));

oos.writeUTF(name);
oos.writeInt(tiles.length);
oos.writeInt(tiles[0].length);
for(int i = 0; i < tiles.length; i++)
for(int j = 0; j < tiles[0].length; j++)
oos.writeInt(tiles[i][j]);

oos.close();
}

void Read(String fileName)
{
final ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));

name = ois.readUTF();

int w = ois.readInt();
int h = ois.readInt();

tiles = new int[h][w];

for(int i = 0; i < h; i++)
for(int j = 0; j < w; j++)
tiles[i][j] = ois.readInt();

ois.close();
}

这是我能达到的最快速度吗?

最佳答案

http://download.oracle.com/javase/6/docs/api/java/io/ObjectOutputStream.html

// change to class to support serialization
class Map implements Serializable
{
String name;
int tiles[][];
}

编写对象的代码片段

FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);

Map m = new Map();

// set Map properties ...

oos.writeObject(m);
oos.close();

关于Java 二进制 IO 写入和读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3692375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com