如何将FileResource加载到字节数组中?

Ste*_*ier 0 java java-ee vaadin vaadin7

我有一个名为的文件data.dat,我想加载到byte[]Vaadin中.这是一个数据文件,我需要根据用户的输入加载然后操作.

我试过了:

String basepath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
FileResource resource = new FileResource(new File(basepath + MY_DATA_FILE));    
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何操纵resource提取byte[].我看到很多关于如何将图像等放到UI组件上的信息,如何流式传输用户生成的PDF等等,但我似乎找不到任何关于如何加载自己的数据文件的例子.然后在代码中操纵......

Xeo*_*eon 5

从vaadin的文档中你有:

java.io.File    getSourceFile() 
      Gets the source file.
Run Code Online (Sandbox Code Playgroud)

要么

DownloadStream getStream() 
    Gets resource as stream.
Run Code Online (Sandbox Code Playgroud)

并在DownloadStream:

java.io.InputStream getStream() 
      Gets downloadable stream.
Run Code Online (Sandbox Code Playgroud)

因此,您可以轻松地操作FileInputStream阅读a的内容FileResource

例如在Java 8中:

byte[] bytes = Files.readAllBytes(Paths.get(resource.getSourceFile().getAbsolutePath()));
Run Code Online (Sandbox Code Playgroud)