我想编写一个程序,它获取3个文本框值和1个全局变量保存在文本文档中,但是我想要附加到文本文档,而不是每次都重写它!这是我到目前为止所拥有的;
public class Proceed extends Activity {
// Defining edittext variables and where they will be used
EditText edittext;
EditText edittext1;
EditText edittext2;
// Getting global variable to get price data from past activity
String PriceResult = Main2Activity.GSTFinal;
// Defining textview to show data
TextView tvResult2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_proceed);
// assigning variables from their respective EditText and textview box
edittext = (EditText) findViewById(R.id.Name);
edittext1 = (EditText) findViewById(R.id.Phone);
edittext2 = (EditText) findViewById(R.id.Address);
tvResult2 = (TextView) findViewById(R.id.tvResult2);
// Assigning tvresult what string to show
tvResult2.setText(PriceResult + "");
//
}
public void save(View view) {
String n1 = edittext.getText().toString();
String n2 = edittext1.getText().toString();
String n3 = edittext2.getText().toString();
String n4 = tvResult2.getText().toString();
String Writetotxtfile = n1 + "," + n2 + "," + n3 + "," + n4;
String filename = "myfile";
FileOutputStream outputStream;
try {
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
outputStream.write(Writetotxtfile.getBytes());
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
对于阅读文件
public String readFromFile() {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,".YOURAPP/myFile.txt");
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
}
catch (IOException e) {
//You'll need to add proper error handling here
}
return text.toString();
}
对于写文件
public void writeFile(String data){
try {
File logFile = new File(Environment.getExternalStorageDirectory().toString(), ".YOURAPP/myFile.txt");
File dirFile = new File(Environment.getExternalStorageDirectory().toString(), ".YOURAPP");
if(!logFile.exists()) {
dirFile.mkdir();
logFile.createNewFile();
}
BufferedWriter output = new BufferedWriter(new FileWriter(logFile));
output.write(data);
output.close();
}catch (Exception e){
System.out.print("Exception e"+e);
}
}
对于删除文件
public void deleteFile(){
File logFile = new File(Environment.getExternalStorageDirectory().toString(), ".YOURAPP/myFile.txt");
File dirFile = new File(Environment.getExternalStorageDirectory().toString(), ".YOURAPP");
if(logFile.exists()) {
logFile.delete();
dirFile.delete();
}
}
添加对清单的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
答案 1 :(得分:0)
而不是
outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
使用
outputStream = new FileOutputStream(filename, true);
这将确保您附加到文件,而不是截断它。
答案 2 :(得分:0)
您要做的是
追加
FileOutputStream
有一个Constructor
用于追加。
创建一个文件输出流以写入由。表示的文件 指定的File对象。
FileOutputStream(File file, boolean append)
因此在实例化FileOutputStream时使用该构造函数。