【发布时间】:2023-04-07 19:57:01
【问题描述】:
假设我有一个包含 3 维向量的数据类。
class Vec3 {
float x, y, z;
public Vec3(float x, float y, float z) { /* ... */ }
}
然后我想赋予它从流中读取的功能。我有花车,所以最简单的选择是DataInputStream。
public static Vec3 read(DataInputStream in) {
float x = in.readFloat();
float y = in.readFloat();
float z = in.readFloat();
return new Vec3(x, y, z);
}
当然,我希望它支持所有InputStream 类型。因此,我将创建一个包含任何流的重载。
public static Vec3 read(InputStream in) {
return read(new DataInputStream(in));
}
但是,此方法会创建一个DataInputStream,它永远不会关闭,只是在读取后转储。这是不好的做法,会导致问题吗?如果我有很多 Vec3 要阅读怎么办?
【问题讨论】:
标签: java datainputstream