如何在类中包含(常量)原始数据表?

时间:2010-07-15 17:45:47

标签: java file primitive

我有一些类需要一堆数据表来完成他们的工作(基本上是基元数组,byte [],short [],int []和float [])。

有些表比较大。在代码中初始化它们会炸掉类文件,在某些情况下它也会超出类初始化程序的大小限制。

目前我已将数据存储在文件中,并使用getResourceAsStream()来读取静态块中的文件。

是否有更好的方法使数据与类文件不可分割?没有必要独立于班级替换数据。

3 个答案:

答案 0 :(得分:1)

使用课堂资源听起来非常合适。它们被滥用于许多目的,但这是一个很好的应用。

答案 1 :(得分:0)

也许你可以用字符串文字(64K限制)对数据进行编码。

final byte[] table = decode("20,5F,A9,3D,E3.........");

答案 2 :(得分:0)

我认为这取决于具体情况。例如,对于像DES或AES这样的东西,这些表实际上是算法的固有特性:将它们与使用它们的代码分开在我眼中并没有多大意义。在这些情况下,表格实际上不是“数据”:它们是以更多方式编码的。

当我编写DES实现时,我仍然希望将它们排除在外,所以我将它们作为包私有类的静态成员包含在同一个包中。您甚至可以使用static import然后使用数组,就像它们在您的班级中被声明一样。