Java:是否可以将原始数据存储在源文件中?

时间:2014-03-29 11:43:35

标签: java floating-point

好的,我知道这是一个奇怪的问题:

我正在编写这段java代码,需要加载原始数据(大约130000个浮点数):

这个数据永远不会改变,因为我不想为PC和Android编写不同的加载方法,所以我想把它作为float[]嵌入到源文件中。

太糟糕了,似乎有65535个条目的限制;有没有一种有效的方法呢?

2 个答案:

答案 0 :(得分:2)

将该数据存储在类路径中的文件中;然后将该数据作为ByteBuffer读取,然后您将转换"到FloatBuffer。请注意,以下代码假定为大端:

final InputStream in = getClass().getResourceAsStream("/path/to/data");
final ByteArrayOutputStream out = new ByteArrayOutputStream();

final byte[] buf = new byte[8192];
int count;

try {
    while ((count = in.read(buf)) != -1)
        out.write(buf, 0, count);
} finally {
    out.close();
    in.close();
}

final FloatBuffer buf = ByteBuffer.wrap(out.toByteArray()).asFloatBuffer();

然后,您可以.get()中的FloatBuffer

答案 1 :(得分:0)

如果这是您使用该方法的唯一问题,您可以使用2个或3个数组来达到极限。

相关问题