如何在Android中将数据附加到文本文件中?
我想在文件中存储一些数据。文件的内容将不断增加,因此我需要将数据附加到该文件中 FileOperation.java如何在Android中将数据附加到文本文件中?,android,file,Android,File,我想在文件中存储一些数据。文件的内容将不断增加,因此我需要将数据附加到该文件中 FileOperation.java package com.chinmay.callblocker; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.Ou
package com.chinmay.callblocker;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
/**
* Created by user on 11/11/2014.
*/
public class FileOperation {
public Boolean write(String file_name, String content) {
try {
String file_path = "/sdcard/"+file_name+".txt";
File file = new File(file_path);
if(!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
/*FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.append(content);
osw.close();
fos.close();*/
bw.append(content);
bw.append("\n");
bw.close();
return true;
} catch(IOException e) {
e.printStackTrace();
return false;
}
}
}
我在文件上使用append,但它仍然只覆盖。私有静态void writeTobriad2(字符串文本){
private static void writeTobriad2(String text) {
try {
File file = null;
file = new File("D:\\somefolder\\filename.txt");
int kb = 1024;
int mb = 1024 * 1024;
//Getting the runtime reference from system
Runtime runtime = Runtime.getRuntime();
long minimum = 10;
long memory = runtime.freeMemory() / kb;
if (memory < minimum) {
System.out.println(
"##### Heap utilization statistics [MB] #####");
//Print used memory
System.out.println("Used Memory:" +
((runtime.totalMemory() - runtime.freeMemory()) / mb));
//Print free memory
System.out.println("Free Memory:" +
(runtime.freeMemory() / mb));
//Print total available memory
System.out.println("Total Memory:" +
(runtime.totalMemory() / mb));
//Print Maximum available memory
System.out.println("Max Memory:" +
(runtime.maxMemory() / mb));
//System.out.println("Thread in sleep for 2 mins"+new Date());
try {
Thread.currentThread().sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//System.out.println("Thread awake after 2 mins"+new Date());
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(text);
bw.newLine();
bw.flush();
bw.close();
fw.close();
//System.out.println("Done");
//TODO Auto-generated method stub
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
}
试一试{
File=null;
file=新文件(“D:\\somefolder\\filename.txt”);
int kb=1024;
int mb=1024*1024;
//从系统获取运行时引用
Runtime=Runtime.getRuntime();
长最小值=10;
长内存=runtime.freemory()/kb;
如果(内存<最小值){
System.out.println(
“############################;
//打印已用内存
System.out.println(“已用内存:”+
((runtime.totalMemory()-runtime.freemory())/mb));
//打印可用内存
System.out.println(“可用内存:”+
(runtime.freemory()/mb));
//打印总可用内存
System.out.println(“总内存:”+
(runtime.totalMemory()/mb));
//打印最大可用内存
System.out.println(“最大内存:”+
(runtime.maxMemory()/mb));
//System.out.println(“休眠线程2分钟”+新日期());
试一试{
Thread.currentThread().sleep(10000);
}捕捉(中断异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//System.out.println(“2分钟后线程唤醒”+新日期());
}
FileWriter fw=新的FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw=新的BufferedWriter(fw);
写(文本);
换行符();
bw.flush();
bw.close();
fw.close();
//系统输出打印项次(“完成”);
//TODO自动生成的方法存根
}捕获(数字格式){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
//TODO自动生成的方法存根
}
你所说的“它保存一次”是什么意思@mangusta我的意思是它将第一次保存文本,然后不会附加任何内容。请尝试此FileWriter fw=new FileWriter(file.getAbsoluteFile(),true)@菲利克斯:嗯,我补充说这是真的,它正在发挥作用。非常感谢。