Java 如何在vaadin中显示文本文件

Java 如何在vaadin中显示文本文件,java,vaadin,Java,Vaadin,我在这里是新来的,尽管我已经在这些论坛上浏览了很多年,最后我需要一些帮助; 我已经试过了 FileResource file = new FileResource(new File("/a/d/r/e/s/s/file")); TextArea text = new TextArea(); text.setValue(file); 这, 及 还有一些是大到可以展示的 如何显示文件 final TextArea textField = new TextArea(); textField.se


我在这里是新来的,尽管我已经在这些论坛上浏览了很多年,最后我需要一些帮助; 我已经试过了

FileResource file = new FileResource(new File("/a/d/r/e/s/s/file"));
TextArea text = new TextArea();
text.setValue(file);
这,

还有一些是大到可以展示的

如何显示文件

 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


您需要使用Apache Commons中的IO组件,才能使用java标准库+java 8流导入FileUtils

TextArea text = new TextArea();
String value = Files.readAllLines(Paths.get(file)).stream().collect(Collectors.joining())
text.setValue(value);   

在Java 7中,您可以使用readAllLines函数对生成的列表进行迭代,如果文件的大小非常大,请采用不同的方法,如这里使用Java标准库+Java 8流所解释的方法

TextArea text = new TextArea();
String value = Files.readAllLines(Paths.get(file)).stream().collect(Collectors.joining())
text.setValue(value);   

在Java 7中,您可以使用readAllLines函数对生成的列表进行迭代,如果文件的大小非常大,请遵循不同的方法,正如这里解释的方法一样

最简单的方法是使用
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")));
这段代码的作用是将字段TextArea绑定到属性。这是Vaadin的数据绑定机制。属性和字段自动同步


如果您想在不编辑它的情况下显示文件,请考虑使用VAADIN标签代替TexTaRea.

最简单的方法是使用<代码> TrimeFieldFiels:

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")));
这段代码的作用是将字段TextArea绑定到属性。这是Vaadin的数据绑定机制。属性和字段自动同步


如果您想在不编辑它的情况下显示文件,请考虑使用VAADIN标签代替TEXTAURA。

可能的副本,我不认为这是一个复制品,因为这个问题是关于填充一个VAADIN组件而不仅仅是一个字符串。嗨,WillPierlot。如果任何一个答案都解决了你的问题,请考虑通过点击复选标记来接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。我不认为这是一个复制品,因为这个问题是关于填充一个VAADIN组件而不仅仅是一个字符串。嗨,WillPierlot,如果任何一个答案都解决了你的问题,请考虑通过点击复选标记来接受它。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。您可以直接或作为
import
语句添加相关的包名。您可以直接或作为
import
语句添加相关的包名。遗憾的是,TextFileProperty(以及一般属性)似乎已从Vaadin 8中删除。是否有一个我缺少的易于使用的替代方案?遗憾的是,TextFileProperty(以及一般的属性)似乎已从Vaadin 8中删除。是否有一个我缺少的易于使用的替代方案?