我尝试在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();
}
}
}
如何编写代码以便第二次在此文件中保存另一个文本?
答案 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链接。