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

标签 java floating-point

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

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

这些数据永远不会改变,而且由于我不想为 PC 和 Android 编写不同的加载方法,所以我正在考虑将其作为 float[] 嵌入到源文件中。

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

最佳答案

将该数据存储在类路径中的文件中;然后将该数据作为 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();

然后您可以从FloatBuffer.get()

关于Java:是否可以将原始数据存储在源文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730636/

相关文章:

java - 访问类中的私有(private)字段

java - 覆盖方法所需的返回类型

string - x.xxxx 不是有效的 float 。语言/本地语言之间的转换

java - if(listStr.size == 0){ 与 if(listStr.isEmpty()){

java - Guava 服务在状态为 STARTING 时停止

java - Java中长整型除法得到分数

c - C中的 float 与小数

c++ - C中浮点运算错误

PHP float 错误 : PHP Hangs On Numeric Value

java - 将类似 block 的序列解析为 Map<String, Type>