Eclipse插件中如何读取插件项目下的文件

在进行插件开发的时候,有的时候希望把某些配置文件,或者数据文件和插件一起打包,一般这些文件需要被放在插件项目目录下,以便插件发布的时候可以和插件一起打包发布。

 

但是由于插件发布的时候,一般会打成一个Jar包,虽然可以使用JDK的JarFile这个类读取Jar包中的某文件,但是由于开发过程中调试的时候,并没有打包,即此时需要读取的文件并非在Jar包中,所以需要有一种通用的方法,来获取项目文件夹下的某个文件。

 

下面的语句,可以通过Eclipse里的OSGi的Bundle类,获取插件目录下的某个文件的输入流。

 

 

Bundle bundle = Platform.getBundle(Activator.PLUGIN_ID);
URL url = bundle.getResource("/icon/xx.txt");
InputStream is = FileLocator.toFileURL(url).openStream();

 

bundle是OSGi的概念,一般情况下,代表一个插件。通过bundle获取一个URL,然后通过工具类FileLocator转换,并且打开一个输入流,这样就可以读取文件的内容了。

 

这种方法的好处,是调试时和发布后通用。

 

你可能感兴趣的:(Eclipse,Plugins)