2015-07-16 2 views
0

У меня есть файл под названием data.dat, который я хотел бы загрузить в byte[] в Ваадине. Это файл данных, который мне нужно загрузить, а затем манипулировать на основе ввода пользователя.Как загрузить FileResource в массив байтов?

Я пробовал:

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, и так далее, но я не могу найти какие-либо примеры о том, как загрузить свой собственный файл данных, а затем манипулировать в коде ...

ответ

5

Из документов в 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())); 
+0

я пропустил stream.stream как в IOUtils.toByteArray (resource.getStream() .getStream()), если вы используете Apache Commons-IO. –