java - Android:文本文件到 InputStream 到包含新行的字符串

标签 java android string inputstream

我一直在开发一个个人应用程序,到目前为止,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/

相关文章:

Javascript 将变量名放在 json 中,而不是它的值

c++ - 字符串下标超出范围

java - 在 Java 中为具体类型重写 equals() 有什么好处吗?

android - 像 Android 布局一样工作的 CSS 框架?

java - JSMPP 响应超时异常 : No response after waiting for 2000 millis when executing submit_sm

android - ANR 执行服务 com.onesignal.SyncService

java - android - 比较两个非常大的ArrayList,其中一个从firebase检索

c# - 从 bool 函数c#中提取字符串变量

java - 使用 Maven,如何在部署阶段之前修改部署文件?

java - Hibernate + ehcache 二级缓存未命中的简单示例