我想从字节数组中提取一组坐标到DoubleBuffer中。
以下是如何将一组坐标从主字节数组提取到另一个字节数组的示例。
byte intPoints[] = new byte[4]; byte geomCoords[]; ... is = new ByteArrayInputStream(stmt.column_bytes(0)); //reads the polygon from db ... is.read(intPoints); //intPoints now holds the number of points in the polygon //After this is read the actual coordinate list is next //Set the size of geomCoords to hold all coordinates, //There are 2 coordinates per point and each coordinate is a double value(8 bytes) geomCoords = new byte[ByteBuffer.wrap(intPoints).order(endian).getInt() * 2 * 8]; is.read(geomCoords); //geomCoords now holds all the coordinates for the polygon
我的问题是: 如何将geomCoords字节数组放入DoubleBuffer? 还是 可以在不创建geomCoords的情况下将这些数据放入DoubleBuffer中?速度和效率是关键,因此任何捷径或优化都是最欢迎的!
如果您知道字节缓冲区中的8个字节确实是Doubles,那么只需
DoubleBuffer dbls = new ByteBuffer(geomCoords).asDoubleBuffer();
现在每个点都可以用 dbls.get();
dbls.get();