比方說,我有一個保存三維向量的數據類。是否傾倒了很多DataInputStreams不好的做法?
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
要讀?