Java 如何使IEditorInput从内存中读取文件?
我正在为eclipse编写插件,我需要为RAM中加载的文件打开编辑器。当我打开新编辑器时,它从IEditorInput获取输入。有许多类实现了这个接口,但它们通常是从硬盘读取文件,或者对于这个目的它们是无用的 因此,问题是:Java 如何使IEditorInput从内存中读取文件?,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,我正在为eclipse编写插件,我需要为RAM中加载的文件打开编辑器。当我打开新编辑器时,它从IEditorInput获取输入。有许多类实现了这个接口,但它们通常是从硬盘读取文件,或者对于这个目的它们是无用的 因此,问题是: 如何使IEditorInput从内存中读取文件?您可以使用实现IStorageEditorInput的对象作为编辑器输入。这使用一个IStorage对象来保存要编辑的内存中数据 一个简单的IStorageEditorInput实现如下所示: class StorageEdi
如何使IEditorInput从内存中读取文件?您可以使用实现
IStorageEditorInput
的对象作为编辑器输入。这使用一个IStorage
对象来保存要编辑的内存中数据
一个简单的IStorageEditorInput
实现如下所示:
class StorageEditorInput extends PlatformObject implements IStorageEditorInput {
private IStorage fStorage;
public StorageEditorInput(IStorage storage) {
fStorage = storage;
}
@Override
public IStorage getStorage() {
return fStorage;
}
@Override
public ImageDescriptor getImageDescriptor() {
return null;
}
@Override
public String getName() {
return getStorage().getName();
}
@Override
public IPersistableElement getPersistable() {
return null;
}
@Override
public String getToolTipText() {
return getStorage().getFullPath().toOSString();
}
@Override
public boolean equals(Object object) {
return object instanceof StorageEditorInput &&
getStorage().equals(((StorageEditorInput)object).getStorage());
}
@Override
public int hashCode() {
return getStorage().hashCode();
}
@Override
public boolean exists() {
return true;
}
}
(以上改编自org.eclipse.debug.internal.ui.views.console.ProcessConsole
)
您还必须提供自己的IStorage
实现,事实上您可能应该实现IEncodedStorage
,它扩展了IStorage
以包括字符编码
请注意,某些编辑器可能不理解IStorageEditorInput