我在服务器上有一个文本文件。我想从我的Android应用程序中打开这个文本文件,然后在TextView中显示文本。我找不到任何如何连接到服务器并将数据馈入字符串的基本示例。
如果您能提供任何帮助,将不胜感激。
尝试以下方法:
try {
// Create a URL for the desired page
URL url = new URL("mysite.com/thefile.txt");
// Read all the text returned by the server
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
// str is one line of text; readLine() strips the newline character(s)
}
in.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
在安卓上应该能正常工作。
Closeable
对象在finally
块中关闭,这是确保它们即使在出现异常时也会被关闭的唯一方法。 - Octavian Helm虽然URL.openStream将起作用,但最好使用与Android一起提供的Apache HttpClient库进行HTTP操作。除其他原因外,您可以使用内容编码(gzip),这将使文本文件传输更小(更好的电池寿命,较少的网络使用量)和更快。
有多种使用HttpClient的方法,并且存在几个帮助程序来包装它们并使其更易于使用。有关详细信息,请参见此帖子:Android项目使用httpclient-> http.client(apache),post/get方法(请注意,我在那里包含的HttpHelper确实使用gzip,尽管并非所有都如此)。
而且,无论您使用哪种方法从HTTP检索数据,都应该使用AysncTask(或Handler)来确保在进行网络调用时不会阻塞UI线程。
请注意,您几乎永远不应该只使用URL.openStream(而不设置一些配置,如超时),尽管许多示例显示此操作,因为如果服务器不可用,它将无限期地阻塞(默认情况下,它没有超时):URL.openStream()可能会导致您被挂起。