【问题标题】:Line breaks are lost when saving a string to internal storage and retrieving it. How do I preserve line breaks?将字符串保存到内部存储并检索它时会丢失换行符。如何保留换行符?
【发布时间】:2013-12-01 23:36:22
【问题描述】:

原始字符串有换行符。我将字符串保存在一个活动中并在另一个活动中检索它。

这是我用来写入内部存储的代码

try {
            OutputStreamWriter outputStreamWriter = new OutputStreamWriter(openFileOutput(FILENAME, Context.MODE_PRIVATE));
            outputStreamWriter.write(strText);
            outputStreamWriter.close();
        }
        catch (IOException e) {
            Log.e("Exception", "File write failed: " + e.toString());
        } 

这是我用来阅读的代码

InputStream inputStream = openFileInput(FILENAME);

                if ( inputStream != null ) {
                    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
                    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                    String receiveString = "";
                    StringBuilder stringBuilder = new StringBuilder();

                    while ( (receiveString = bufferedReader.readLine()) != null ) {
                        stringBuilder.append(receiveString);
                    }

                    inputStream.close();
                    ret = stringBuilder.toString();
                }
            }
            catch (FileNotFoundException e) {
                Log.e("login activity", "File not found: " + e.toString());
            } catch (IOException e) {
                Log.e("login activity", "Can not read file: " + e.toString());
            }

            SomeArray.add(ret);

代码有效的唯一问题是我丢失了换行符。

【问题讨论】:

    标签: java android line-breaks internal-storage


    【解决方案1】:

    我通过将 while 循环更改为来修复它

     while ( (receiveString = bufferedReader.readLine()) != null ) {
    
                            ret += receiveString + "\n";
                        }
    

    【讨论】:

    • 感谢您发布您的解决方案,收到了几个错误而没有解释。一切都已解决。
    【解决方案2】:

    readLine 去除结束行字符: http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html#readLine()

    使用 read 方法一次以合理的块读取文件并将这些块连接起来。将以这种方式保留结束线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 2014-04-01
      • 2012-11-24
      • 2012-03-09
      • 2018-08-21
      • 1970-01-01
      相关资源
      最近更新 更多