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

Java:可以在源文件中存储原始数据吗?,java,floating-point,Java,Floating Point,好吧,我知道这是一个有点奇怪的问题: 我正在编写这段java代码,需要加载原始数据(大约130000个浮点): 这些数据永远不会改变,因为我不想为PC和Android编写不同的加载方法,所以我考虑将其作为float[]嵌入到源文件中 太糟糕了,似乎有65535个条目的限制;有没有一种有效的方法可以做到这一点?如果这是您唯一的问题,您可以使用2或3个数组来绕过限制。将数据存储在类路径中的文件中;然后将该数据作为字节缓冲区读取,然后将其“转换”为浮动缓冲区。请注意,下面的代码假定为大端元: fina

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

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

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


太糟糕了,似乎有65535个条目的限制;有没有一种有效的方法可以做到这一点?

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

将数据存储在类路径中的文件中;然后将该数据作为
字节缓冲区读取,然后将其“转换”为
浮动缓冲区。请注意,下面的代码假定为大端元:

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()
将数据存储在类路径中的文件中?因为android不允许我从那里加载任何内容,所以我必须编写一种不同的加载方法,从“android不允许我从那里加载任何内容”中加载文件,但据我所知,它从不加载任何东西,只是抛出一个例外,这是因为你没有正确地使用它;它起作用了。显示一些失败的代码