Интерфейс FileLoader
предоставляет единый набор методов для работы с файловым хранилищем как на уровне Middleware, так и на клиентском уровне. Загрузка и выгрузка данных осуществляется с помощью потоков:
-
saveStream()
– сохраняет содержимое потокаInputStream
в хранилище. -
openStream()
– возвращает входной поток для выгрузки содержимого файла из хранилища.
Tip
|
И на клиентской и на серверной стороне |
В качестве примера использования FileLoader
представим, что нам нужно сохранять текст, введённый пользователем, в текстовый файл и отображать содержимое этого файла в другом поле на том же экране.
Экран содержит два поля textArea
. Пользователь вводит текст в первое поле textArea
, затем нажимает на кнопку buttonIn
, и текст сохраняется в хранилище FileStorage
. Второе поле будет отображать содержимое сохраненного файла по нажатию кнопки buttonOut
.
Ниже представлен фрагмент XML-дескриптора экрана:
link:../../../../../source/features/fileLoader_1.xml[role=include]
Контроллер экрана содержит два метода, вызываемых при нажатии кнопок под текстовыми полями:
-
В методе
onButtonInClick()
мы создаём байтовый массив из ввода в первом текстовом поле. Затем создаём объектFileDescriptor
и с помощью его атрибутов указываем имя нового файла, его расширение, размер и дату создания.После этого мы сохраняем новый файл методом
saveStream()
интерфейсаFileLoader
, передав в него объектFileDescriptor
и содержимое файла с поставщикомInputStream
. Также делаем коммит объектаFileDescriptor
в data store с помощью интерфейсаDataManager
. -
В методе
onButtonOutClick()
мы получаем содержимое сохранённого файла методомopenStream()
интерфейсаFileLoader
. Затем отображаем содержимое во втором полеtextArea
.
link:../../../../../source/features/fileLoader_1.java[role=include]