尽管我多年来一直在关注这些论坛,但我终于需要一些帮助,我在这里很新。
我试过这个;
FileResource file = new FileResource(new File("/a/d/r/e/s/s/file"));
TextArea text = new TextArea();
text.setValue(file);
此;
FileResource file = new FileResource(new File("/a/d/r/e/s/s/file"));
TextArea text = new TextArea();
text.setValue(file.toString());
和
FileResource file = new FileResource(new File("/a/d/r/e/s/s/file"));
TextArea text = new TextArea();
text.setValue(file.getAbosoluteFile().toString());
还有其他要展示的人;
如何显示文件
答案 0 :(得分:4)
最简单的方法是使用TextFileProperty
:
TextArea text = new TextArea(new TextFileProperty(new File("/a/d/r/e/s/s/file")));
或更长的形式:
TextArea text = new TextArea();
text.setPropertyDataSource(new TextFileProperty(new File("/a/d/r/e/s/s/file")));
这段代码的作用是将Field TextArea绑定到Property。这是Vaadin的数据绑定机制。属性和字段自动同步。
如果您只想显示文件而不进行编辑,请考虑使用Vaadin标签而不是TextArea。
答案 1 :(得分:1)
final TextArea textField = new TextArea();
textField.setSizeFull();
this.addComponent(textField);
try {
final File file = new File("/path/to/file");
final String fileAsString = FileUtils.readFileToString(file);
textField.setValue(fileAsString);
} catch (IOException e) {
e.printStackTrace();
}
您需要使用Apache Commons的IO组件才能导入FileUtils
答案 2 :(得分:0)
使用java标准库+ java 8流
TextArea text = new TextArea();
String value = Files.readAllLines(Paths.get(file)).stream().collect(Collectors.joining())
text.setValue(value);
在Java 7中,您可以使用readAllLines函数迭代生成的List,如果文件的大小非常大,请遵循不同的方法,如此处所述http://www.baeldung.com/java-read-lines-large-file