如何在vaadin中显示文本文件

时间:2016-09-13 22:13:04

标签: java vaadin


 尽管我多年来一直在关注这些论坛,但我终于需要一些帮助,我在这里很新。 我试过这个;

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());

还有其他要展示的人;

如何显示文件

3 个答案:

答案 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