openFileOutput和openFileInput获取手机内存中的文件而不是SD卡中的。 openFileInput(Stringname):直接得到/data/data/当前app包名/files/name文件的输入流 openFileOutput(Stringname,intmode):直接得到/data/data/当前app包名/files/name文件的输出流,mode为写入文件时的权限 1、Android数据访问权限实现方式 Context类的publicabstractFileOutputStreamopenFileOutput(Stringname,intmode) 2、其中mode就是文件访问权限模式,主要4种模式 Context.MODE_PRIVATE:私有模式(默认模式),只能被应用本身和同一群组的人访问;写入的内容覆盖原文件内容 Context.MODE_APPEND:追加模式也是私有模式,只能被应用本身和同一群组的人访问;如果文件存在就追加内容,如果文件不存在就新建文件并写入内容 Context.MODE_WORLD_READABLE:所有人可读权限 Context.MODE_WORLD_WRITEABLE:所有人可写权限 也可通过多个组合同时拥有多个读写权限,Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE表示所有人可读+可写
public class MainActivity extends Activity { private EditText et; private Button saveButton, readButton; private TextView show; private boolean MyWrite() { try { FileOutputStream fos = openFileOutput("data", Context.MODE_WORLD_READABLE); String content = et.getText().toString(); fos.write(content.getBytes()); fos.flush(); fos.close(); Toast.makeText(MainActivity.this, "成功", 1).show(); return true; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } private boolean MyRead() { try { FileInputStream fis = openFileInput("data"); byte buff[] = new byte[1024]; StringBuffer sb = new StringBuffer(); int hasread = 0; while ((hasread = fis.read(buff)) != -1) { sb.append(new String(buff)); } fis.close(); show.setText(sb.toString()); Toast.makeText(MainActivity.this, sb.toString(), 1).show(); return true; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et = (EditText) findViewById(R.id.edittext); saveButton = (Button) findViewById(R.id.save); readButton = (Button) findViewById(R.id.red); show = (TextView) findViewById(R.id.show); saveButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub MyWrite(); } }); readButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub MyRead(); } }); }} /* 取得内存文件空间大小及可用大小 */ @SuppressLint("NewApi") private String getStorgeFileSize(String path){ String fileSizeDesc = null; StatFs statFs = new StatFs(path); //获得磁盘状态的对象 long blockSizeLong = statFs.getBlockSizeLong(); //获得磁盘一个扇区的大小 long blockCountLong = statFs.getBlockCountLong(); //获得磁盘空间总的扇区数 long availableBlocksLong = statFs.getAvailableBlocksLong(); //获得磁盘空间总的可用扇区数 fileSizeDesc = "总内存:" + Formatter.formatFileSize(MainActivity.this, blockSizeLong*blockCountLong) + "; 可用内存:" + Formatter.formatFileSize(MainActivity.this, blockSizeLong*availableBlocksLong); return fileSizeDesc; }