Android在文件Sd卡中写入文本

时间:2014-06-05 11:28:54

标签: android android-sdcard

我尝试在file.i中编写文本写入代码,女巫可以写文本,但是如果我再次使用我的代码再次将文本重写为文件。例如,如果我第一次写" Hello android&# 34;然后"先生"结果只是"先生"。我想"你好安卓先生"

your_file = new File("/sdcard/facebookUser");

                try {
                    Writer writer = new OutputStreamWriter(new FileOutputStream(
                            your_file), "UTF-8");
                    writer.write(facebook_user_name + ",");
                    writer.write(facebook_id);
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (writer != null) {
                        try {
                            writer.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }

如何编写代码以便第二次在此文件中保存另一个文本?

4 个答案:

答案 0 :(得分:0)

new FileOutputStream(your_file, true)

public FileOutputStream(String name, boolean append) throws FileNotFoundException

append - 如果为true,则将字节写入文件末尾而不是开头

答案 1 :(得分:0)

而不是:

writer = new OutputStreamWriter(new FileOutputStream(
                            your_file), "UTF-8"); 

使用:

writer = new OutputStreamWriter(new FileOutputStream(
                            your_file, true), "UTF-8");  

这会将FileOutputStream设置为追加模式。

  

java.io.FileOutputStream.FileOutputStream(文件文件,布尔附加)   抛出FileNotFoundException

     

构造一个写入文件的新FileOutputStream。如果追加是   如果该文件已经存在,则会附加到;否则它   将被截断。如果文件不存在,将创建该文件。

答案 2 :(得分:0)

try {
        int n = 0;
        String Name = "file";
        File myFile = new File("/sdcard/test/");
        if (!myFile.exists()) {
            boolean b = myFile.mkdirs(); }
        myFile = new File("/sdcard/test/"+Name+".txt");
        while (myFile.exists())
        {
            myFile = new File("/sdcard/test/"+Name+n+".txt");  
            n++;
        }
        myFile.createNewFile();
        FileOutputStream fOut = new FileOutputStream(myFile);
        OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
        String str = "Your text to write";
        myOutWriter.append(str);
        myOutWriter.close();
        fOut.close();
} catch (Exception e) {}

不要忘记permision:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 3 :(得分:0)

Vladimir Kulyk和user2450263是正确的!您必须以追加模式编写文件。试试this链接。