繁体   English   中英

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

[英]Java: is it possible to store raw data in source file?

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

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

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

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

将该数据存储在类路径中的文件中; 然后将该数据作为ByteBuffer读取,然后将其“转换”为FloatBuffer 请注意,以下代码假定为big endian:

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();

然后你可以从FloatBuffer .get()

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM