android 存储 内部存储 外部存储 SD卡

内部存储

  Android系统能够直接把文件存在设备的内部存储内。

  默认情况下,保存在内部存储内的文件是应用程序私有的,其他应用程序(或用户)是无法访问的。

  当用户卸载此应用程序时,内部存储的数据会一并清除。

  • 往内部存储内写文件(写入到/data/data/com.xxx.xxx/files目录下,com.xxx.xxx为应用程序包名):

  

String FILE_NAME = "hello_file"; 
		String FILE_TEXT = "hello world!!!"; 
		FileOutputStream fos;
		try {
			fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
			fos.write(FILE_TEXT.getBytes());
			fos.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} 


MODE_PRIVATE参数指示要创建这个文件(或者,如果有同名文件存在,则会替换旧文件),并且让这个文件是应用程序的私有文件。其他可用的模式包括:MODE_APPEND、MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。

运行上面代码,发现/data/data/com.xxx.xxx/files目录下多了个hello_file文件。


  • 读取内部存储内的文件(也就是从/data/data/com.xxx.xxx/files目录下读取文件)
  • String FILE_NAME = "hello_file"; 
    		byte[] b = new byte[1024]; 
    		StringBuffer sb = new StringBuffer(); 
    		FileInputStream fis;
    		try {
    			fis = openFileInput(FILE_NAME);
    			int num; 
    			while ((num = fis.read(b)) != -1) { 
    				sb.append(new String(b, 0, num)); } 
    			fis.close(); 
    			Log.d("xxx", sb.toString());
    		} catch (FileNotFoundException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} 


  • 另外,介绍几个和内部存储相关的方法

  //打印出/data/data/com.xxx.xxx/files

  Log.d("xxx", getFilesDir().toString());

  //打印出/data/data/com.xxx.xxx/app_hello_file

  Log.d("xxx", getDir("hello_file", Context.MODE_PRIVATE).toString());

  //返回应用程序内部存储(也就是/data/data/com.xxx.xxx/files目录下)当前保存文件列表

  for (int i = 0; i < fileList().length; i++) {
            Log.d("xxx", fileList()[i]);

  }

  //删除保存在内部存储上(也就是/data/data/com.xxx.xxx/files目录下)的文件

  deleteFile("hello_file");




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值