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

How do I load a FileResource into a byte array?

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

我试过了:

String basepath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
FileResource resource = new FileResource(new File(basepath + MY_DATA_FILE));    

问题是我不知道如何操纵 resource 来提取 byte[]。我看到 lots of information for how to put images and so on to the UI components, how to stream a user generated PDF,等等,但我似乎找不到任何关于如何加载您自己的数据文件然后在代码中操作的示例...

从 vaadin 的文档中你有:

java.io.File    getSourceFile() 
      Gets the source file.

DownloadStream getStream() 
    Gets resource as stream.

DownloadStream中:

java.io.InputStream getStream() 
      Gets downloadable stream.

所以你可以很方便的对File或者InputStream进行操作,读取一个FileResource

的内容

例如 Java 8:

byte[] bytes = Files.readAllBytes(Paths.get(resource.getSourceFile().getAbsolutePath()));