字符串中的换行符未传递给文件

时间:2013-04-13 22:27:09

标签: java android string newline fileoutputstream

我看到了类似的问题

Newlines in string not writing out to file

但它没有帮助我,这是我的代码

 try { 
           String StringBudy =String.format(mailBuddy,System.getProperty("line.separator")); 

            FileOutputStream fOut = openFileOutput("My_Sms.txt",
                                                    MODE_WORLD_READABLE);
            OutputStreamWriter osw = new OutputStreamWriter(fOut); 

            osw.write(StringBudy);
            osw.flush();
            osw.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
    }

为什么字符串中的Newlines没有写入文件的任何想法?

2 个答案:

答案 0 :(得分:0)

String.format()只会使用换行符替换第一个%s

例如:

String.format("this%sis%sa%stest", System.getProperty("line.separator"))

将产生

this
isatest

一种解决方案是用换行符替换%s的所有出现:

String str = mailBuddy.replace("%s", System.getProperty("line.separator"));

答案 1 :(得分:0)

创建字符串时,而不是使用\ n用于新行使用\ r \ n,如Windows所要求的那样。