2010-04-25 20 views
8

Ich schreibe eine Webseite mit GWT. Jetzt muss ich eine Textdatei lesen und den Inhalt auf der Webseite anzeigen, habe aber keine Ahnung, wie man das mit GWT macht.Textdatei in Google GWT lesen?

Es ist sehr nett, wenn es irgendeine Weise in GWT gibt, die ich .properties Datei lesen kann. (Bitte beachten Sie, dass dies nicht die Eigenschaftendatei der Lokalisierung ist, die GWT bereits unterstützt hat)

Hat jemand eine Idee, bitte?

Danke.

Antwort

10

Sie können Dateien in Ihrer GWT app lesen RequestBuilder

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 
    } 
}); 
+1

Die Lesbarkeit der Datei durch die Konfiguration des Servers es gespeichert auf ('.htaccess' usw.) beschränkt ist - nur solange die Datei, die Sie öffentlich zugänglich ist über' RequestBuilder' bekommen können. Wenn Sie Ihre Dateien nicht für alle freigeben möchten, können Sie ein Servlet (oder einen ähnlichen Dienst) schreiben, das auf die auf dem Server gespeicherten Dateien zugreift (die Dateien sind dann nicht öffentlich verfügbar - nur für beispielsweise registrierte Benutzer)). Sie können den Server auf viele Arten konfigurieren - Dateien nur an localhost liefern, die Dateien aus einem Nicht-www-Ordner lesen usw. –

+0

Guter Punkt, meine Antwort bearbeitet, um das widerzuspiegeln. –

+0

Vielen Dank für Ihre Antworten. Allerdings habe ich folgendes Problem: Ich habe genau den obigen Code gemacht. Ich habe einen Ordner, der 3 Dateien enthält: abc.data, abc.file, net.properties. Ich wollte den Kontext der net.properties-Datei lesen, aber der obige Code gibt immer den Kontext der abc.file zurück. Und wenn diese Datei nicht existiert, wurde eine Ausnahme ausgelöst, auch wenn ich den Pfad als http://127.0.0.1:8080/path/net.properties angegeben habe. Irgendeine Idee, bitte? – ipkiss

1

Verwendung Wenn die Textdatei Teil Ihrer GWT-Projekt ist, können Sie es in einem ClientBundle enthalten. Wenn es nicht Teil Ihres Projekts ist, klingt die RequestBuilder wie die richtige Antwort.

Ich veröffentlichte eine einfache example project, um zu zeigen, wie man ein ClientBundle verwendet.

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