代码之家  ›  专栏  ›  技术社区  ›  Chris

从Android上的服务器读取文本文件

  •  36
  • Chris  · 技术社区  · 14 年前

    我的服务器上有一个文本文件。我想从我的Android应用程序打开文本文件,然后在文本视图中显示文本。我找不到任何有关如何与服务器进行基本连接并将数据输入字符串的示例。

    如果您能提供任何帮助,我们将不胜感激。

    3 回复  |  直到 7 年前
        1
  •  57
  •   aioobe    14 年前

    尝试以下操作:

    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) {
    }
    

    (取自 Exampledepot: Getting text from URL )

    应该在Android上运行良好。

        2
  •  14
  •   Community Romance    7 年前

    虽然url.openstream可以工作,但最好使用android for http附带的apache httpclient库。除其他原因外,您可以将内容编码(gzip)与它一起使用,这将使文本文件传输变得更小(更好的电池寿命、更少的网络使用量)和更快。

    使用httpclient有很多种方法,有几个帮助者可以包装东西并使之更容易。有关详细信息,请参阅本文: Android project using httpclient --> http.client (apache), post/get method (请注意,其中包含的httphelper i使用gzip,但并非全部使用)。

    另外,无论您使用什么方法通过HTTP检索数据,您都要使用 AysncTask (或处理程序)以确保在进行网络调用时不阻塞UI线程。

    请注意,您绝不能只使用url.openstream(不设置某些配置,如超时),但许多示例表明,如果服务器不可用,它将无限期阻塞(默认情况下,它没有超时): URL.openStream() Might Leave You Hanging .

        3
  •  5
  •   baron_bartek    12 年前

    获取网络资源时不要忘记向清单添加Internet权限:(加载项清单)。