我正在使用此函数获取所选项目的所有.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);
}
}
}
答案 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());