写文件
package com.itheima27.permissiondemo;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//私有文件,
writeToLocal("private.txt", Context.MODE_PRIVATE);
//可读文件,
writeToLocal("readable.txt", Context.MODE_WORLD_READABLE);
//可写文件,
writeToLocal("writeable.txt", Context.MODE_WORLD_WRITEABLE);
//可读可写文件.
writeToLocal("readable_writeable.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
}
/**
* 写入到手机内存
* @param fileName 文件名
* @param mode 权限
*/
private void writeToLocal(String fileName, int mode) {
try {
// data/data/包名/files/fileName
FileOutputStream fos = this.openFileOutput(fileName, mode);
fos.write(("权限应用写的信息: " + fileName).getBytes());
fos.flush();
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
读文件
package com.itheima27.permissionother;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {
private String baseDirPath = "/data/data/com.itheima27.permissiondemo/files/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 设置私有文件读写按钮的监听
findViewById(R.id.btn_read_private).setOnClickListener(this);
findViewById(R.id.btn_write_private).setOnClickListener(this);
// 设置可读文件读写按钮的监听
findViewById(R.id.btn_read_readable).setOnClickListener(this);
findViewById(R.id.btn_write_readable).setOnClickListener(this);
// 设置可写文件读写按钮的监听
findViewById(R.id.btn_read_writeable).setOnClickListener(this);
findViewById(R.id.btn_write_writeable).setOnClickListener(this);
// 设置可读可写文件读写按钮的监听
findViewById(R.id.btn_read_readable_writeable).setOnClickListener(this);
findViewById(R.id.btn_write_readable_writeable).setOnClickListener(this);
}
@Override
public void onClick(View v) {
// v.getId(); // 获得当前被点击按钮的id
switch (v.getId()) {
case R.id.btn_read_private: // 读私有文件
readRemoteFile("private.txt");
break;
case R.id.btn_write_private:// 写私有文件
writeRemoteFile("private.txt");
break;
case R.id.btn_read_readable: // 读可读文件
readRemoteFile("readable.txt");
break;
case R.id.btn_write_readable:// 写可读文件
writeRemoteFile("readable.txt");
break;
case R.id.btn_read_writeable: // 读可写文件
readRemoteFile("writeable.txt");
break;
case R.id.btn_write_writeable:// 写可写文件
writeRemoteFile("writeable.txt");
break;
case R.id.btn_read_readable_writeable: // 读可读可写文件
readRemoteFile("readable_writeable.txt");
break;
case R.id.btn_write_readable_writeable:// 写可读可写文件
writeRemoteFile("readable_writeable.txt");
break;
default:
break;
}
}
/**
* 读远程文件
* @param fileName
*/
private void readRemoteFile(String fileName) {
try {
String path = baseDirPath + fileName;
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
String text = br.readLine();
br.close();
Toast.makeText(this, "读取: " + text, 0).show();
} catch (Exception e) {
Toast.makeText(this, "读取失败: " + fileName, 0).show();
e.printStackTrace();
}
}
/**
* 写入远程文件
* @param fileName
*/
private void writeRemoteFile(String fileName) {
try {
String path = baseDirPath + fileName;
FileOutputStream fos = new FileOutputStream(path);
fos.write("哈哈, 被我黑了".getBytes());
fos.flush();
fos.close();
Toast.makeText(this, "写入成功", 0).show();
} catch (Exception e) {
Toast.makeText(this, "写入失败", 0).show();
e.printStackTrace();
}
}
}