我正在尝试使用 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();
答案 0 :(得分:1)
在检查mLine是否为null
后,您读取新行后,将获得null
。
假设你在最后一行,mLine != null
是真的。您输入if-statement
并读取另一行(您在最后一行的位置),新行不存在,mLine
将变为空。
您可以通过其他方式(do{}while()
)执行此操作,但为了尽可能少地更改您的代码,我认为您应该在while-loop
中读取最后一行。