2014-03-29 26 views
0

OK,我知道這是一個有點怪異的問題:Java:是否可以將原始數據存儲在源文件中?

我寫這篇文章的Java代碼,需要加載的原始數據(約13萬浮動分):

該數據不會改變,因爲我不想爲PC和Android編寫不同的加載方法,所以我想將它作爲float[]嵌入到源文件中。

太糟糕了,似乎有65535條目的限制;有沒有一種有效的方法來做到這一點?

+1

爲什麼不將該數據存儲在類路徑中的文件中? – fge

+0

,因爲android不會讓我從那裏加載任何東西,我必須寫一個不同的加載方法,從資產加載文件 – dosse91214

+0

「android不會讓我加載任何東西」< - 什麼? Android中沒有'.getResourceAsStream()'? – fge

回答

0

如果這是您唯一的問題,那麼您可以使用2或3個數組來解決極限問題。

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

然後,您可以.get()

相關問題