FileInputStream问题 - 没有段落

时间:2013-01-26 18:45:20

标签: java android

我正在创建一个应用程序,要求用户输入一些关于自己的信息。信息必须是几段长,为此,他们必须使用手机键盘上的输入按钮创建新行。这有效,但当用户回来编辑他们的信息时,它已经忘记了所有新的行。例如

如果他们写了

> line one
> 
> 
> 
> line five

然后当他们再次打开应用程序时显示

  

line oneline five

第五行的文字直接附在第一行的文字上。

如何让它记住新线? 这是我的代码,用于从文本框写入文件,然后再次从文件读取到文本框:

public void save() {

        String FILENAME = "item_1_content.txt";
        String string = name.getText().toString();


        FileOutputStream fos = null;
        try {
            fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            fos.write(string.getBytes());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            fos.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }



        public String readSavedData ( ) {
            String datax = "" ;
            try {
                FileInputStream fIn = openFileInput ( "item_1_content.txt" ) ;
                InputStreamReader isr = new InputStreamReader ( fIn ) ;
                BufferedReader buffreader = new BufferedReader ( isr ) ;

                String readString = buffreader.readLine ( ) ;
                while ( readString != null ) {
                    datax = datax + readString ;
                    readString = buffreader.readLine ( ) ;
                }

                isr.close ( ) ;
            } catch ( IOException ioe ) {
                ioe.printStackTrace ( ) ;
            }
            name.setText(String.valueOf(datax));
            return datax ;

        } 

1 个答案:

答案 0 :(得分:1)

使用此:

String readString = buffreader.readLine();
while( readString != null ) {
    datax = datax + readString + "\n";
    readString = buffreader.readLine();
}

您需要附加换行符。它由"\n"编码。