Как сохранить содержимое tableviewer в текстовый файл в swt

Я создал средство просмотра таблиц и отобразил содержимое в таблице. Теперь я создал кнопку с именем «Сохранить», которая должна сохранить все содержимое таблицы в файл. Я создал диалоговое окно, чтобы указать имя файла, но я не понимаю, как сохранить полные данные в таблице в текстовый файл. Итак, как мы можем сохранить полные данные в таблице в текстовый файл. Код для диалогового окна выглядит следующим образом

Button btnSave= new Button(topComposite, SWT.BUTTON2);
        btnSave.setText("Save");
        //btnSave.addSelectionListener(new OpenFiler());



        btnSave.addSelectionListener(new SelectionAdapter() {
            @Override public void widgetSelected(final SelectionEvent e){
                FileDialog dialog = new FileDialog(shell, SWT.SAVE);
                dialog.setText("Save");
                String[] filterExt = { "*.log" };
                dialog.setFilterNames(filterExt);
                String absolutePath = dialog.open();
                if (absolutePath == null)
                    return;
                                dialog.setFilterExtensions(new String[] { "*.log" });                                                           dialog.setFilterPath("c:\\"); // Windows path
                        }
        });

Пожалуйста, помогите мне, как мы можем сохранить полные данные в таблице в текстовый файл.


person vinod    schedule 08.10.2014    source источник


Ответы (1)


Используйте этот код. viewer — это экземпляр вашего средства просмотра таблиц. Добавьте этот код в конец метода addSelectionListener кнопки btnSave.

    TableItem[] items = viewer.getTable().getItems();
    File fl = new File(dialog.getFilterPath() + File.separator + dialog.getFileName());
    FileWriter flwr;
    int cls = viewer.getTable().getColumnCount();
            try {
                flwr = new FileWriter(fl);
                for (int i = 0; i < items.length; i++) {
                    for (int j = 0; j <= cls; j++) {
                        flwr.write(items[i].getText(j) + "\t");
                    }
                    flwr.write("\n");
                }
                flwr.flush();
                flwr.close();
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
person Chandrayya G K    schedule 08.10.2014