有没有办法在客户端用 gwt 实现写/读文件?我尝试使用 java.io.File、java.io.Writer ...我无法成功。
提前谢谢!
更新:请查看我自己的答案以获取解决方案
不,您不能在客户端写入文件。GWT 只绑定 Java 语言的一个子集。任何文件 IO 都需要通过 RPC 或某种 Web 服务在服务器端发生。
在某些现代浏览器中使用 HTML5 是可能的。尝试lib-gwt-file。该库可以从客户端计算机读取文件,甚至支持免打扰。要查看它的实际效果,请点击此链接。您可以在规范中找到有关 HTML5 FileAPI 的更多信息。
要将文件从浏览器内存下载到客户端计算机,您可以使用Data URI。例子在这里。但此功能仅受 Google Chrome 支持。另请查看以下有用的功能。它运行下载而不重新加载当前页面:
public static native void setWindowHref(String url)/*-{
$wnd.location.href = url;
}-*/;
另一种半跨浏览器方式是Downloadify。它基于闪存。检查这个例子。
最近,我偶然发现了一个名为client-io的库。
一个简单的库,通过 GWT 将 Flash File API 引入常规 Web 应用程序。ClientIO 将帮助您将一些文件生成功能卸载到客户端,将资源和繁重的计算节省到服务器。工作演示 - http://ahome-it.github.io/ahome-client-io/
在 GWT 中,客户端文件夹中的类仅编译为 javascript,因此无法使用
java.io
因为 GWT 不提供包的编译
java.io
因此,您必须仅通过 RPC 编写文本文件。