【问题标题】:Read text file in google GWT?在谷歌 GWT 中读取文本文件?
【发布时间】:2011-02-12 02:12:48
【问题描述】:

我正在使用 GWT 编写网页。现在我需要读取一个文本文件并在网页中显示内容,但不知道如何使用 GWT。

如果 GWT 中有任何方法可以读取 .properties 文件,那就太好了。 (请注意,这不是GWT已经支持的本地化属性文件)

请问有人有什么想法吗?

谢谢。

【问题讨论】:

    标签: file gwt text


    【解决方案1】:

    您可以使用RequestBuilder在您的 GWT 应用中读取文件

    new RequestBuilder(RequestBuilder.GET, "path/to/file.txt").sendRequest("", new RequestCallback() {
      @Override
      public void onResponseReceived(Request req, Response resp) {
        String text = resp.getText();
        // do stuff with the text
      }
    
      @Override
      public void onError(Request res, Throwable throwable) {
        // handle errors
      }
    });
    

    【讨论】:

    • 文件的可读性仅受其存储的服务器配置的限制(.htaccess 等) - 只要文件是公开可用的,您就可以通过 RequestBuilder 获取它。如果您不想将您的文件公开给所有人,您可以编写一个 servlet(或类似的服务)来访问存储在服务器上的文件(这些文件不公开 - 仅对例如注册用户) )。您可以通过多种方式配置服务器 - 仅向 localhost 提供文件,从某些非 www 文件夹中读取文件等。
    • 感谢大家的回答。但是,我遇到了以下问题:我完全按照上面的代码进行了操作。我有一个文件夹,其中包含 3 个文件:abc.data、abc.file、net.properties。我想读取 net.properties 文件的上下文,但上面的代码总是返回 abc.file 的上下文。如果这个文件不存在,就会抛出异常,即使我将路径指定为127.0.0.1:8080/path/net.properties。有什么想法吗?
    • 是否可以在浏览器中访问 net.properties 文件?如果没有,那么您的 GWT 代码也将无法访问它。这可能取决于您的托管配置,哪些文件可以被浏览器访问,因此也可以被您的 GWT 应用程序访问。
    • 是的,我知道如何读取属性文件,但如果我们已经知道该属性文件存在于某个位置。在我的例子中,properties文件是生成的,只有在我们运行网页时才能知道,在编译时它是不存在的。有没有办法从 url 读取属性文件?谢谢大家。
    • 也许我误解了你的问题。您不知道属性文件的 URL 吗?只要文件存在并且在运行时可访问,我无法想象 GWT 无法打开并读取它的任何原因。
    【解决方案2】:

    如果文本文件是您的 GWT 项目的一部分,您可以将其包含在 ClientBundle 中。如果它不是您项目的一部分,那么 RequestBuilder 听起来是正确的答案。

    我发布了一个简单的example project 来展示如何使用 ClientBundle。

    String greetings = Assets.INSTANCE.greetings().getText();
    final Greeter greeter = new Greeter();
    greeter.loadGreetings(Arrays.asList(greetings.split("\\n")));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-21
      • 2017-08-03
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多