如何从eclipse的IResource接口获取文件内容

时间:2018-04-26 11:44:17

标签: java eclipse plugins eclipse-plugin

我正在使用此函数获取所选项目的所有.class文件,但我想使用IFile接口getContents()获取这些文件的内容,但IResource中不存在此方法。

如何通过此函数的IResource获取文件的内容?

void processContainer(IContainer container) throws CoreException {
       IResource [] members = container.members();

       for (IResource member : members) {
          if (member instanceof IContainer)  {
             processContainer((IContainer)member);
           } else if (member instanceof IFile && member.isDerived()) {
              System.out.println(member);
           }
        } 
       }

1 个答案:

答案 0 :(得分:1)

您只能在getContents上使用IFile,因此您必须将IResource转换为IFile

if (member instanceof IFile) {
   IFile file = (IFile)member;

   InputStream contents = file.getContents();

   ....
}

如果文件是文本文件,请使用正确的编码读取它:

Reader reader = new InputStreamReader(file.getContents(), file.getCharset());