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

时间:2015-07-16 23:01:34

标签: java java-ee vaadin vaadin7

我有一个名为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 componentshow to stream a user generated PDF等等,但我似乎无法找到有关如何加载您自己的数据文件的示例,然后您可以在代码中操作...

1 个答案:

答案 0 :(得分:5)

从vaadin的文档中你有:

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

DownloadStream getStream() 
    Gets resource as stream.

DownloadStream

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

因此,您可以轻松操作FileInputStream来阅读FileResource

的内容

例如在Java 8中:

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