[英]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.