Как получить содержимое файла из интерфейса IResource Eclipse - PullRequest
0 голосов
/ 26 апреля 2018

Я использую эту функцию для получения всех файлов .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 голосов
/ 26 апреля 2018

Вы можете использовать getContents только на IFile, поэтому вам придется разыграть IResource до IFile:

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

   InputStream contents = file.getContents();

   ....
}

Если файл представляет собой текстовый файл, прочитайте его в правильной кодировке, используя:

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