Есть ли способ реализовать запись / чтение файла с gwt на стороне клиента? Я попытался с java.io.File, java.io.Writer ... Я не смог добиться успеха.
спасибо заранее!
Обновление: см. Мой собственный ответ для решения
Нет, вы не можете писать в файлы на стороне клиента. GWT связывает только подмножество языка Java. Любой файловый ввод-вывод должен происходить на стороне сервера через RPC или какой-либо веб-сервис.
Это возможно с HTML5 в некоторых современных браузерах.Попробуйте lib-gwt-file .Эта библиотека может читать файлы с клиентского компьютера и даже поддерживает DND.Чтобы увидеть его в действии, пройдите по этой ссылке 1004 *.Более подробную информацию о HTML5 FileAPI вы можете найти в спецификации .
. Для загрузки файла из памяти браузера на клиентский компьютер вы можете использовать Data URI .Например, здесь .Но эта функция поддерживается только в Google Chrome.Также взгляните на следующую полезную функцию.Он запускает загрузку без перезагрузки текущей страницы:
public static native void setWindowHref(String url)/*-{ $wnd.location.href = url; }-*/;
Другой полу-кроссбраузерный способ - Downloadify .Это основано на вспышке.Проверьте это пример .
Недавно я наткнулся на библиотеку под названием client-io .
Простая библиотека, которая предоставляет API-интерфейс Flash File API для обычных веб-приложений. через GWT. ClientIO поможет вам разгрузить часть файла создание функциональных возможностей для клиента, экономия ресурсов и тяжелые вычисление на сервер. Рабочая демонстрация - http://ahome -it.github.io / ahome-client-io /
В GWT классы в папке клиента компилируются только в javascript, поэтому невозможно использовать
java.io
, поскольку GWT не обеспечивает компиляциюпакета
Следовательно, вы должны писать текстовый файл только через RPC.