解析HTML时出现Null

时间:2013-07-01 14:24:39

标签: android html null android-webview

我正在尝试使用 JSON 数据创建动态 HTML 页面,每次应用程序看到#@时,它都会被值替换。但是当我的页面加载时,我的底部印有null。在 HTML 代码中,null位于标记</html>之后,位于文档的所有#@的所有末尾。

也许它来自myOutWriter.append(mLine);,但我没有成功解决它。

我的代码:

reader = new BufferedReader(new InputStreamReader(getAssets().open("template_page.html"), "UTF-8"));

myFile = new File(android.os.Environment.getExternalStorageDirectory()
                  + "/Viz/HTML/template_page.html");

myFile.createNewFile();
fOut = new FileOutputStream(myFile);
myOutWriter = new OutputStreamWriter(fOut);

mLine = reader.readLine();

String[] replace = { colorHex,...self_job_slug, colorString};

while (mLine != null) {
    mLine = reader.readLine();
    if (mLine != null && mLine.contains("%@")) {
        mLine = mLine.replace("%@", replace[count]);
        count++;
    }
    myOutWriter.append(mLine);
}
myOutWriter.close();
fOut.close();

webView.loadUrl("file://" 
                + android.os.Environment.getExternalStorageDirectory()
                + "/Viz/HTML/template_page.html");

reader.close();

1 个答案:

答案 0 :(得分:1)

在检查mLine是否为null后,您读取新行后,将获得null

假设你在最后一行,mLine != null是真的。您输入if-statement并读取另一行(您在最后一行的位置),新行不存在,mLine将变为空。

您可以通过其他方式(do{}while())执行此操作,但为了尽可能少地更改您的代码,我认为您应该在while-loop中读取最后一行。