【问题标题】:How to read a Text file from the server如何从服务器读取文本文件
【发布时间】:2014-01-18 03:45:12
【问题描述】:

我有一个 15 MB 的文本文件在服务器上可用。我不想下载那个文件。我的文件按索引排列。用户从在线文件中搜索任何单词。我对如何阅读在线文本文件感到困惑, 这是我正在使用的代码,但是有 OutOfMemoryError。

        final Handler mHandlr=new Handler();

        new Thread(new Runnable() {

            @Override
            public void run() {
                String d=getStringFromUrl(TafseerEngPath);
                tafseerTxt.setText(getJSONFromUrl(TafseerEngPath));
                mHandlr.post(new Runnable() {

                    @Override
                    public void run() {
                        tafseerTxt.setText(getJSONFromUrl(TafseerEngPath));
                    }
                });
            }
        }).start();

错误 12-31 18:08:01.100: E/AndroidRuntime(11052): java.lang.OutOfMemoryError

【问题讨论】:

    标签: android text bufferedreader


    【解决方案1】:

    您已将数据存储为文本格式,并且希望一次将其作为一些信息进行检索。这对于 TextFormat 是不可能的(部分可以通过创建 web 服务来实现)。为避免这种情况,我建议您将单词存储在 mysql 中并使用 webservice 访问数据。

    Android and PHP Web Service.

    【讨论】:

    • 感谢您的建议
    【解决方案2】:
    try {
       URL url = new URL("http://www.example.com/123.txt");
       Scanner s = new Scanner(url.openStream());
       // read from your scanner
    }
    catch(IOException ex) {
       // there was some connection problem, or the file did not exist on the server,
       // or your URL was not in the right format.
       // think about what to do now, and put it here.
       ex.printStackTrace(); // for now, simply output it.
    }
    

    URL url = new URL("http://www.example.com/123.txt");
    InputStream in = url.openStream();
    

    【讨论】: