4

有没有办法在客户端用 gwt 实现写/读文件?我尝试使用 java.io.File、java.io.Writer ...我无法成功。

提前谢谢!

更新:请查看我自己的答案以获取解决方案

4

4 回答 4

9

不,您不能在客户端写入文件。GWT 只绑定 Java 语言的一个子集。任何文件 IO 都需要通过 RPC 或某种 Web 服务在服务器端发生。

于 2011-02-28T21:56:56.680 回答
6

在某些现代浏览器中使用 HTML5 是可能的。尝试lib-gwt-file。该库可以从客户端计算机读取文件,甚至支持免打扰。要查看它的实际效果,请点击此链接。您可以在规范中找到有关 HTML5 FileAPI 的更多信息。

要将文件从浏览器内存下载到客户端计算机,您可以使用Data URI。例子在这里。但此功能仅受 Google Chrome 支持。另请查看以下有用的功能。它运行下载而不重新加载当前页面:

public static native void setWindowHref(String url)/*-{
    $wnd.location.href = url;
}-*/;

另一种半跨浏览器方式是Downloadify。它基于闪存。检查这个例子

于 2012-02-26T02:22:53.817 回答
3

最近,我偶然发现了一个名为client-io的库。

一个简单的库,通过 GWT 将 Flash File API 引入常规 Web 应用程序。ClientIO 将帮助您将一些文件生成功能卸载到客户端,将资源和繁重的计算节省到服务器。工作演示 - http://ahome-it.github.io/ahome-client-io/

于 2014-06-28T04:14:38.880 回答
0

在 GWT 中,客户端文件夹中的类仅编译为 javascript,因此无法使用

java.io

因为 GWT 不提供包的编译

java.io

因此,您必须仅通过 RPC 编写文本文件。

于 2011-03-01T06:45:05.340 回答