Как мне записать файл в eclipse? - PullRequest
2 голосов
/ 15 апреля 2010

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

IFile file = getFile(); 
file.delete();
file.create(input, false, null);

РЕДАКТИРОВАТЬ : Это плагин Eclipse, а не обычная Java-программа.

Ответы [ 3 ]

1 голос
/ 16 апреля 2010

Интерфейс IFile, кажется, имеет несколько методов, которые позволили бы вам написать некоторый контент:

/**
 * Appends the entire contents of the given stream to this file.
 * ...
 */
public void appendContents(InputStream source, boolean force, boolean keepHistory, IProgressMonitor monitor) throws CoreException;
1 голос
/ 15 апреля 2010

Это происходит потому, что вы пытаетесь прочитать файл, который не существует. Итак, получив файл и закрыв его, вы фактически создаете файл.

0 голосов
/ 23 апреля 2010

Нашел ответ здесь: http://old.nabble.com/how-to-get-the-IDocument-of-an-ITextFileBuffer-created-from-an-IFile--td19222160.html

Пришлось немного изменить, чтобы удовлетворить мои потребности:

FileEditorInput editorInput = new FileEditorInput(file);
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchPage page = wb.getActiveWorkbenchWindow().getActivePage();
IEditorDescriptor desc = wb.getEditorRegistry().getDefaultEditor(file.getName());
IEditorPart editor = (IEditorPart)page.openEditor(editorInput, desc.getId());
ITextEditor textEditor = (ITextEditor) editor.getAdapter(ITextEditor.class);
IDocumentProvider documentProvider = textEditor.getDocumentProvider(); 
IDocument document = documentProvider.getDocument(editorInput);
document.replace(position, 0, content);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...