android development basics tutorial file storage functionality implementation

  • 2020-05-07 20:29:37
  • OfStack

File storage:
 
public class MainActivity extends Activity { 
EditText mname, mage; 
TextView mtv; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
mname = (EditText) findViewById(R.id.editText1); 
mage = (EditText) findViewById(R.id.editText2); 
mtv = (TextView) findViewById(R.id.textView1); 
} 
public void onClick(View v) { 
String name = mname.getText().toString(); 
int age = Integer.parseInt(mage.getText().toString()); 
String cont = "name=" + name + ",age=" + age + "\n"; 
try { 
int id = v.getId(); 
//  Internal save  
if (id == R.id.button1) { 
FileOutputStream fos = this.openFileOutput("mytext.txt", 
Context.MODE_APPEND | Context.MODE_WORLD_WRITEABLE 
| Context.MODE_WORLD_READABLE); 
fos.write(cont.getBytes()); 
fos.close(); 
Toast.makeText(this, " Write complete ", 1).show(); 
} 
//  read  
else if (id == R.id.button2) { 
FileInputStream fis = this.openFileInput("mytext.txt"); 
byte[] bytes = new byte[fis.available()]; 
fis.read(bytes); 
fis.close(); 
String str = new String(bytes); 
mtv.setText(str); 
} 
} catch (Exception e) { 
e.printStackTrace(); 
} 
} 

If other app want to access this mytext.txt file format is as follows:
 
public class MainActivity extends Activity { 
TextView mcontent; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.activity_main); 
mcontent=(TextView) findViewById(R.id.textView1); 
} 
public void onClick(View v){ 
switch (v.getId()) { 
case R.id.button1: 
try { 
readRemoteFileByAbslutePath(); 
} catch (Exception e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
break; 
case R.id.button2: 
try { 
WriteRemoteFileByAbslutePath(); 
} catch (Exception e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
break; 
default: 
break; 
} 
} 
/** 
*  The remote file is read from the file's absolute path  
* @throws Exception 
*/ 
public void readRemoteFileByAbslutePath() throws Exception{ 
String path = "/data/data/com.nanguabing.filedemo/files/mytext.txt" ; 
FileInputStream fis = new FileInputStream(path); 
byte[] bytes = new byte[fis.available()]; 
fis.read(bytes); 
fis.close(); 
String str = new String(bytes); 
mcontent.setText(str); 
Log.i("Other", str); 
} 
/** 
*  The remote file is read from the file's absolute path  
* @throws Exception 
*/ 
public void WriteRemoteFileByAbslutePath() throws Exception{ 
String path = "/data/data/com.nanguabing.filedemo/files/mytext.txt" ; 
FileOutputStream fos = new FileOutputStream(path,true); 
fos.write("other write! ".getBytes()); 
fos.close(); 
Log.i("Other", "other write over!"); 
} 
/** 
*  Writes to the remote file through the package-dependent context  
* @throws Exception 
*/ 
public void readRomoteByPackageContext() throws Exception { 
String pname = "com.nanguabing.filedemo"; 
Context ctx = this.createPackageContext(pname, 
Context.CONTEXT_IGNORE_SECURITY); 
FileInputStream fis = ctx.openFileInput("mytext.txt"); 
byte[] bytes = new byte[fis.available()]; 
fis.read(bytes); 
fis.close(); 
Log.i("Other",new String(bytes)); 
} 
/** 
*  Writes to the remote file through the package-dependent context  
*/ 
public void readRomoteByPackageContext2() throws Exception { 
String pname = "com.nanguabing.filedemo"; 
Context ctx = this.createPackageContext(pname, 
Context.CONTEXT_INCLUDE_CODE); 
FileInputStream fis = ctx.openFileInput("mytext.txt"); 
byte[] bytes = new byte[fis.available()]; 
fis.read(bytes); 
fis.close(); 
Log.i("Other",new String(bytes)); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.activity_main, menu); 
return true; 
} 
} 

Related articles: