首页 > 系统 > Android > 正文

android开发基础教程—文件存储功能实现

2019-10-24 21:08:01
字体:
来源:转载
供稿:网友
文件存储功能在实现数据读写时会频繁使用到,接下来介绍文件存储功能的实现,感兴趣的朋友可以了解下
 
文件存储: 
复制代码代码如下:

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(); 
// 内部保存 
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, "写入完成", 1).show(); 

// 读取 
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(); 


其他app如果想要访问这个mytext.txt文件格式如下: 
复制代码代码如下:

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; 


/** 
* 通过文件绝对路径读取远程文件 
* @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); 

/** 
* 通过文件绝对路径读取远程文件 
* @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!"); 

/** 
* 通过包相关上下文写入远程文件 
* @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)); 

/** 
* 通过包相关上下文写入远程文件 
*/ 
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; 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表