如何在eclipse插件开发中加载IFile并对其进行修改

如何在eclipse插件开发中加载IFile并对其进行修改,eclipse,eclipse-plugin,eclipse-rcp,Eclipse,Eclipse Plugin,Eclipse Rcp,我有一个IFile显示绝对路径为 /dynamic/WebContent/testing.html 我想在上面的testing.html中做一些更改。 这意味着我需要加载文件,然后需要修改它,然后保存它。 在eclipse插件开发中执行上述步骤的过程是什么。请参见IFile.getContents()、setContents()和create()方法 使用getContents将文件读入内存,修改它,然后使用setContents将其写出。这将使您的工作区保持同步。如果您尝试转换为文件并使用标准

我有一个IFile显示绝对路径为

/dynamic/WebContent/testing.html

我想在上面的testing.html中做一些更改。 这意味着我需要加载文件,然后需要修改它,然后保存它。 在eclipse插件开发中执行上述步骤的过程是什么。

请参见IFile.getContents()、setContents()和create()方法


使用getContents将文件读入内存,修改它,然后使用setContents将其写出。这将使您的工作区保持同步。如果您尝试转换为文件并使用标准Java文件I/O,您的工作区将不同步(需要刷新),并且如果您的文件是本地文件,您将与Eclipse使用的其他文件存储系统完全不兼容。请尝试:

import java.io.RandomAccessFile;
RandomAccessFile file = new RandomAccessFile("IFile".getLocation().toFile(), "rwd");

如何在文件的特定位置设置内容。我不需要动态加载文件。使用getContents将文件读入内存,修改它,然后使用setContents将其写出。这将使您的工作区保持同步。如果您尝试转换到文件并使用Java RandomAccessFile,您的工作区将不同步(需要刷新),并且您将与Eclipse使用的其他文件存储系统完全不兼容。如果您对如何使用新信息修改HTML内容有疑问,请将其作为单独的问题发布,因为它与Eclipse或文件I/o没有多大关系。@Konstantin Komissarchik:My+1表示不同步点。通常它被忽略了。建议您也将其放在答案中。在使用getContents之后,要修改内容,我需要使用bUfferedInput/datainputStream在文件的特定点中进行写入。这一点很好,但这只是在您需要随机访问且getContents()、setContents()太慢的情况下的一种替代方法。