什麼是最好的方式來創建一個文件,我創建了一個活動(說Filewriter.java)可用(數據操作)到我的應用程序中的所有其他活動?我已經確保使用相同的文件名,但我如何確保我在任何地方訪問同一個文件?我需要在2個文件上實現它,一個包含字符串名稱和其他整數。我用writeUTF()創建了字符串文件;從多個活動訪問文件。
這裏是從前一個活動(UI)接收數據並將內容寫入文件的代碼。我想從另一個UI活動訪問同一個文件...
package com.shuaib669.bunkrecord;
import java.io.DataOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class filewriter extends Activity{
String[] newText = new String[7];
String[] newNum = new String[7];
int[] no_of_classes = new int[7];
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
newText = extras.getStringArray("com.shuaib669.bunkrecord.thetext");
newNum = extras.getStringArray("com.shuaib669.bunkrecord.thenum");
finish();
if (newText != null && newNum != null){
try {
// open subject.txt and classes.bin for writing
DataOutputStream out1 = new DataOutputStream(openFileOutput("subject.txt", Context.MODE_WORLD_READABLE));
DataOutputStream out2 = new DataOutputStream(openFileOutput("classses.bin", Context.MODE_WORLD_READABLE));
for(int x=0;x<7;x++){
try{
//converting string representation of no.s into integers
no_of_classes[x]=Integer.parseInt(newNum[x]);
}
catch(Exception e){
e.printStackTrace();
}
}
for(int x=0;x<7;x++){
if(newText[x]==null)
out1.writeUTF("\n");
else if(newText[x]==" " || newText[x]=="\n" || newText[x]=="\t")
out1.writeUTF("\n");
else
out1.writeUTF(newText[x]);
if(newNum[x]==null)
out2.writeInt((Integer) null);
else
out2.writeInt(no_of_classes[x]);
}
out1.close();
}
catch(IOException e){
Log.e("Data Input Sample", "I/O Error");
}
}
startNextMatchingActivity(new Intent("com.shuaib669.bunkrecord.SUBLIST"));
//Sublist being the activity that displays the stored contents of the file and lets user manipulate the file classes.bin.
}
}
我的主要困境是能夠訪問相同的一個文件(不論subject.txt或classes.bin),並能閱讀並在同一應用中操縱來自其他任何活動的數據。
嘿感謝您的回覆!會給這個去! :D – zanazaar