2010-04-25 26 views
8

GWT kullanarak bir web sayfası yazıyorum. Şimdi bir metin dosyası okumalı ve içeriği web sayfasından görüntülemem gerekiyor ama GWT ile nasıl yapılacağı hakkında hiçbir fikrim yok.Google GWT'deki metin dosyasını okuyun mu?

GWT'de .properties dosyasını okuyabileceğim herhangi bir yol varsa çok güzel. (Bu, GWT'nin zaten desteklediği özelliklerin dosya olmadığını unutmayın)

Herhangi bir fikri olan var mı?

Teşekkürler.

cevap

10

Metin dosyası GWT projenin parçası değilse 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

dosyanın okunabilirliği sadece depolanan sunucusu ('.htaccess', vs) yapılandırması ile sınırlıdır - sürece dosya halka açık olduğu gibi RequestBuilder'' yoluyla elde edebilirsiniz. Dosyalarınızı herkese açık yapmak istemiyorsanız, sunucuda depolanan dosyalara erişen bir sunucu (veya benzeri bir hizmet) yazabilirsiniz (dosyalar herkese açık değildir, yalnızca kayıtlı kullanıcılara).). Sunucuyu birçok şekilde yapılandırabilirsiniz - dosyaları yalnızca localhost'a sunun, bazı www olmayan klasörlerden dosyaları okuyun vb. –

+0

İyi bir nokta, cevabımı yansıtacak şekilde düzenledim. –

+0

Yanıtlarınız için teşekkürler. Ancak, aşağıdaki gibi bir sorunum var: Tam olarak yukarıdaki kodu yaptım. 3 dosya içeren bir klasörüm var: abc.data, abc.file, net.properties. Net.properties dosyasının içeriğini okumak istedim, ancak yukarıdaki kod her zaman abc.file içeriğini döndürüyordu. Ve eğer bu dosya mevcut değilse, yolu http://127.0.0.1:8080/path/net.properties olarak belirtsem bile bir istisna atıldı. Bir fikrin lütfen? – ipkiss

1

kullanarak GWT uygulamasında dosyaları okuyabilir, bunu bir ClientBundle içinde içerebilir. Eğer projenizin bir parçası değilse, RequestBuilder doğru cevap gibi geliyor.

Bir ClientBundle'ın nasıl kullanılacağını göstermek için basit bir example project gönderdim.

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