/********************************************/
>android文件读写以及不同应用之间的文件读写操作
/********************************************/
0.代码分析
/********************************************/
public class MainActivity extends Activity {
private EditText fileName;
private EditText content;
//定义一个匿名的内部类根据触发的不同的按钮进行处理
private View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
// v表示当前被点击触发的按钮的引用
String cont = MainActivity.this.content.getText().toString();
String fname = MainActivity.this.fileName.getText().toString();
int rid = R.string.success;
switch (v.getId()) {
case R.id.button:
try {
FileOutputStream outStream = MainActivity.this
//Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE表示具有读写权限
.openFileOutput(fname, Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
FileService.save(outStream, cont);//将内容写入磁盘
} catch (Exception e) {
Log.i("MainActivity", "保存内容出现错误:\n"+e.toString());
rid = R.string.error;
}
break;
case R.id.showbutton:
try {
FileInputStream finStream = MainActivity.this
.openFileInput(fname);
Log.i("MainActivity", "读取结果:\n"+FileService.read(finStream));
} catch (FileNotFoundException e) {
Log.i("MainActivity","没有找到需要读取的文件:\n"+ e.toString());
rid = R.string.error;
} catch (IOException e) {
Log.i("MainActivity", "读取文件流出现异常:\n"+e.toString());
rid = R.string.error;
}
break;
}
//做出消息响应
Toast.makeText(MainActivity.this, rid, Toast.LENGTH_LONG).show();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
fileName = (EditText) this.findViewById(R.id.fileName);
content = (EditText) this.findViewById(R.id.content);
Button savebtn = (Button) this.findViewById(R.id.button);
Button showbtn = (Button) this.findViewById(R.id.showbutton);
savebtn.setOnClickListener(this.listener);
showbtn.setOnClickListener(this.listener);
}
}
/********************************************/
1.如何在另外一个应用中做单元测试检测我是否有权限访问某个别的应用创建的文件
/********************************************/
public class testFilePermission extends AndroidTestCase {
public static String read(InputStream inStream)throws IOException {
byte[] bt = new byte[inStream.available()];
inStream.read(bt);
return new String(bt);
}
public void testRead(){
try {
File file = new File("/data/data/com.zyb.file/files/hh");
//需要注意的是这里我不是用的
//this.getContext().openFileInput("/data/data/com.zyb.file/files/hh")
//这个方法这个方法是错误的因为他是基于他自己的上下文的路径去访问的
FileInputStream finStream = new FileInputStream(file);
Log.i("testFilePermission", read(finStream));
} catch (IOException e) {
Log.i("testFilePermission","异常:\n"+ e.toString());
}
}
}
/********************************************/
android文件读写以及不同应用之间的文件读写操作
最新推荐文章于 2022-01-17 18:40:02 发布