2010-04-25 4 views
8

J'écris une page Web en utilisant GWT. Maintenant, j'ai besoin de lire un fichier texte et afficher le contenu de la page Web, mais je ne sais pas comment faire avec GWT.Lire le fichier texte dans Google GWT?

C'est très bien s'il y a un moyen dans GWT que je puisse lire le fichier .properties. (S'il vous plaît noter que ce n'est pas le fichier de propriétés de localisation que GWT a déjà pris en charge)

Est-ce que quelqu'un a une idée, s'il vous plaît?

Merci.

Répondre

10

Vous pouvez lire les fichiers dans votre application GWT à l'aide 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

La lisibilité du fichier est limité uniquement par la configuration du serveur, il est stocké sur ('.htaccess, etc.) - tant que le fichier est accessible au public, vous pouvez l'obtenir via' RequestBuilder'. Si vous ne voulez pas rendre vos fichiers publics à tout le monde, vous pouvez écrire une servlet (ou un service similaire) qui accède aux fichiers stockés sur le serveur (les fichiers ne sont alors pas accessibles au public - uniquement aux utilisateurs enregistrés, par exemple). Vous pouvez configurer le serveur de plusieurs façons - ne servir que les fichiers à localhost, lire les fichiers de certains dossiers non-www, etc. –

+0

Bon point, j'ai édité ma réponse pour refléter cela. –

+0

Merci à tous pour vos réponses. Cependant, j'ai eu le problème comme suit: j'ai fait exactement le code ci-dessus. J'ai un dossier qui contient le dossier 3: abc.data, abc.file, net.properties. Je voulais lire le contexte du fichier net.properties, mais le code ci-dessus retourne toujours le contexte du fichier abc.file. Et si ce fichier n'existe pas, une exception a été levée, même si je spécifie le chemin http://127.0.0.1:8080/path/net.properties. Une idée, s'il vous plaît? – ipkiss

1

Si le fichier texte fait partie de votre projet GWT, vous pouvez l'inclure dans un ClientBundle. Si cela ne fait pas partie de votre projet, alors le RequestBuilder sonne comme la bonne réponse. J'ai posté un simple example project pour montrer comment utiliser un ClientBundle.

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