我一直在开发一个个人应用程序,到目前为止,Stack Overflow 提供了一些帮助,但我现在遇到了另一个问题。我正在尝试读取存储在我的源代码中的基本文本文件并将其输出到警报对话框。我的代码执行此操作,但对话框不显示我的任何新行。
displayChangelogDialog 方法
private void displayChangelogDialog() {
Context context = this;
AssetManager am = context.getAssets();
InputStream is;
// ensure that changelog is available
try {
is = am.open("changelog");
// changelog dialog
new AlertDialog.Builder(this)
.setTitle("Changelog")
.setMessage(getStringFromInputStream(is)) // convert changelog to string
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.show();
} catch (IOException e) {
Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
getStringFromInputStream 方法
private static String getStringFromInputStream(InputStream is) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
更新日志文本文件
v0.0.3
- Update PPS rate for recent difficulty increase
v0.0.2
- Calculate DGM based on PPS rate
我试图在每一行的末尾添加“\n”,但它不起作用,只显示字符“\n”。提前谢谢大家。
最佳答案
有一种简单的 hack 方法可以将所有输入流读取到一个字符串对象中,该对象包含您需要的所有内容,而无需逐行读取。
Scanner scanner = new Scanner(inputStream).useDelimiter("\\A");
String string = scanner.hasNext() ? scanner.next() : null;
scanner.close();
关于java - Android:文本文件到 InputStream 到包含新行的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881660/