我需要发布一些具有相关数据集的Java代码。它是设备的模拟器,我希望能够在一个.JAR文件中包含用于模拟记录的所有数据。在这种情况下,每个模拟记录包含四个字段(主叫方,被叫方,呼叫开始,呼叫持续时间)。
最好的方法是什么?我已经沿着将数据生成为Java语句的道路走了,但是IntelliJ似乎并不特别高兴处理100,000行Java源文件!
有更聪明的方法吗?
在C#/ .NET世界中,我将数据创建为单独的文件,将其作为资源嵌入到程序集中,然后使用反射在运行时将其拉出并访问它。我不确定Java世界中适当的比喻是什么。
FWIW,Java 1.6,适用于Solaris。
答案 0 :(得分:7)
在JAR中包含静态资源文件是完全可以的。这通常使用属性文件来完成。您可以使用以下内容访问资源:
Class.getResourceAsStream ("/some/pkg/resource.properties");
其中/是相对于类路径的根。
本文讨论主题Smartly load your properties。
答案 1 :(得分:3)
当然,只需将它们包含在罐子里即可
InputStream is = this.getClass().getClassLoader().getResourceAsStream("file.name");
如果您将它们放在某些文件夹下,例如“数据”,那么只需执行
InputStream is = this.getClass().getClassLoader().getResourceAsStream("data/file.name");