java - 在 Eclipse PDE 视图中打开文件
问题描述
我创建了一个名为 SampleView 的 Eclipse PDE 视图。目前,为了以编程方式在视图上显示我的文件的输出,我正在使用文件中的每一行,并使用扫描仪打印到视图。这是显示文件数据的最佳方式吗?或者是否有更好的现有函数可以在我的代码中使用以在视图中打开文件?
SampleView 的代码:
public class SampleView extends ViewPart {
/**
* The ID of the view as specified by the extension.
*/
public static final String ID = "asher.views.id.SampleView";
@Inject IWorkbench workbench;
@Override
public void createPartControl(Composite parent) {
Text text = new Text(parent, SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
File file = new File("/Users/user/Desktop/untitled.json");
Scanner sc;
try {
sc = new Scanner(file);
while (sc.hasNextLine())
text.setText(text.getText()+"\n"+sc.nextLine());
sc.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setFocus() {
}
}
解决方案
Scanner
我建议使用此处描述的更简洁的方法,而不是使用 a 进行阅读:如何使用 Java 逐行读取大型文本文件?
我还建议不要重复调用setText
并简单地附加当前文本;相反,使用 a并简单地StringBuilder
调用setText
.StringBuilder
总之,它看起来像这样:
public class SampleView extends ViewPart {
/**
* The ID of the view as specified by the extension.
*/
public static final String ID = "asher.views.id.SampleView";
@Inject IWorkbench workbench;
@Override
public void createPartControl(Composite parent) {
Text text = new Text(parent, SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
StringBuilder builder = new StringBuilder("");
try (Stream<String> stream = Files.lines(Paths.get("/Users/user/Desktop/untitled.json"));) {
stream.forEach(line -> builder.append(line).append("\n"));
text.setText(builder.toString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void setFocus() {
}
}
推荐阅读
- docker - Docker Build 使用 Buildkit 任何方式来记录哪个文件爆破了缓存?
- java - Spring Boot 无法解析 Eclipse 中的属性占位符
- outlook - 在加载加载项时自动固定 Outlook 中的任务窗格
- angular - 我们可以使用 NGXS 模式像使用 extraProperties Map 一样轻松地扩展模型吗?
- tableau-api - 如何在表格中的特定列中添加值
- javascript - Vue js:数组上的过滤器在我的代码中不起作用
- basic-authentication - IAsyncAuthorizationFilter 在重定向到登录页面后执行
- javascript - 为什么我会收到此错误 - 函数作为 React 子级无效。如果您返回 Component 而不是
从渲染 - css - 无法使用 Live Sass 编译器将 Sass 文件编译为 CSS
- python - pip 在同一网络上的多台计算机上超时