Data Storage(数据存储)之内部储存(Internal Storage)
Data Storage(数据存储)之内部储存(Internal Storage)
读取手机内部储存,Activity 中调用 openFileOutput(file_name, mode)方法返回File 对象;
file_name: 文件名
mode: 操作文件的类型
Context.MODE_PRIVATE:代表文件是私有的,如果重新调用,则原来的数据会被覆盖
Context.MODE_APPEND:先判断文件是否存在,如果存在,则在在原来的数据后面追加内容 />
Context.MODE_WORLD_READABLE:其他应用程序由权限读取
Context.MODE_WORLD_WRITEABLE:其他应用程序由权限写入
如果当其他程序同时具有读写功能,则应该这样写:
openFileOutput(FILE_NAME, Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
下面是个小Demo:
public void writeFile(View view) {try {FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE);fos.write(string_01.getBytes());fos.close();Toast.makeText(InternalStorageActivity.this, "Saved...", Toast.LENGTH_LONG).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}
读取或者写入文件,默认目录是:/data/data/<package-name>/files/
文件夹下
我们也可以使用Activity 提供的getCacheDir()
和getFilesDir()
方法:获取/data/data/<package-name>/
下的 /cache
和 /files
读取文件则调用openFileInput(FILE_NAME)
方法
public void readFile(View view) {try {FileInputStream fis = openFileInput(FILE_NAME);BufferedReader br = new BufferedReader(new InputStreamReader(fis));String line = null;while ((line = br.readLine()) != null) {String str = new String(line);Log.i(TAG, str);}Toast.makeText(InternalStorageActivity.this, "Read...", Toast.LENGTH_LONG).show();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
}
操作外部储存(内存卡)
由于Android 系统内存大小的局限,比如我们储存文件就要把它放在外部存储中,在操作之前,我们要在AndroidManifest.xml 中设置读写操作:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 、、、、
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
操作外部储存(内存卡)
由于Android 系统内存大小的局限,比如我们储存文件就要把它放在外部存储中,在操作之前,我们要在AndroidManifest.xml 中设置
读写权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
创建和删除权限
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
Android 中的Environment 类对外部存储卡的操作,
getExternalStorageState() 方法,判断外部储存卡的状态,如果为MEDIA_MOUNTED 则表示可操作
getExternalStorageDirectory() 方法,获取外部储存的目录,可以对其目录进行操作
/*** 读取外部储存卡 * 在外部储存卡上创建一个demo.tet 文件,并写入字符* 为了沿着文件已经写入外部储存,所有读取创建的文件*/public void getExternalStorage(View view) throws IOException {// Android 中的Environment 类对外部存储卡的操作,// getExternalStorageState() 方法,判断外部储存卡的状态,如果为MEDIA_MOUNTED 则表示可操作//getExternalStorageDirectory() 方法,获取外部储存的目录,可以对其目录进行操作String state = Environment.getExternalStorageState();if (Environment.MEDIA_MOUNTED.equals(state)) {File sdcardDir = Environment.getExternalStorageDirectory();File saveFile = new File(sdcardDir, "demo.text");FileOutputStream fos = new FileOutputStream(saveFile);fos.write("text".getBytes());fos.close();Toast.makeText(InternalStorageActivity.this, "getExternalStorage", Toast.LENGTH_LONG).show();File[] fileDir = sdcardDir.listFiles();for (File file : fileDir) {String fileName = file.toString();Log.i(TAG, "FileName: " + fileName);}FileInputStream fis = new FileInputStream(saveFile);byte[] buffer = new byte[1024];int len = 0;String value = null;while ((len = fis.read(buffer)) != -1) {value = new String(buffer, 0, len);}fis.close();Log.i(TAG, "getValue = " + value);}
}
转载于:https://www.cnblogs.com/Tikitoo/p/android-data-internal-storage.html
Data Storage(数据存储)之内部储存(Internal Storage)相关推荐
- [Redux/Mobx] redux的数据存储和本地储存有什么区别?
[Redux/Mobx] redux的数据存储和本地储存有什么区别? Redux存储的数据本质上都是JS变量,都是在内存中的,页面刷新就会消失 本质存储是像localStorage Cookie In ...
- Android数据存储(内部,外部,SharedPreferences,SQlite)
数据的存储位置 内部存储:data/data/对应包名/files/文件名 外部存储:/storage/emulated/0/对应包名/文件 内部存储的读写 写 String file="d ...
- 微信小程序:globalData和Storage数据存储的错误示例
前言 在小程序登录是,将返回的用户数据,存储在globalData中和storage中. // 存储的数据是一个对象 wx.setStorageSync('userAuthData', user.da ...
- 数据存储——手机内部文件存储
一.特点 1.存储的是任意类型的文件 2.使用IO输入输出流操作文件 3.存放的目录:/data/data/包名/files/ 4.可以设置不被其他应用操作 5.应用卸载之后,数据同时被删除 二.AP ...
- Android开发7:简单的数据存储(使用SharedPreferences)和文件操作
前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...
- [免费专栏] Android安全之数据存储与数据安全「详解」
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- android界面数据存储,Android应用开发基础之数据存储和界面展现(二)
Android应用开发基础之数据存储和界面展现(二) 常见布局 相对布局 RelativeLayout 组件默认左对齐.顶部对齐 设置组件在指定组件的右边 android:layout_toRight ...
- Android数据存储(1):SharedPreferences
Android系统提供了5种方式用来存储应用数据(application data),它们分别是SharedPreferences(共享参数),Internal Storage(内部存储),Exter ...
- Android数据存储之文件存储
-- 大家都知道,数据和算法是一个应用程序的核心.所以,学好数据存储是非常有必要的. --Android数据的存储有多种方式,比如ContentProvider(内容提供者).SQLite(嵌入式数据 ...
最新文章
- python监控进程并实现掉线重启
- [PTA]L2-001 紧急救援 (25 分)
- 数据库 实体间的3种关系
- oracle有sysdata,Oracle基础
- 曝光:一位来自微软公司的粉丝 写给我的信
- mysql中文乱码解决_Stata 中文乱码顽疾解决方法
- spring-security过程分析
- 「leetcode」131.分割回文串【回溯算法】详解!
- 对voc2007数据集进行person的单类数据抽取
- logback日志模板
- word使用上角标超链接到引用的参考论文
- 页高速缓存(Page Cache)
- element表格样式修改
- 设置电脑 保护视力 还有桌面默认颜色
- 3D游戏编程作业10
- 持安科技孙维伯:实战零信任最佳实践
- 不错的U3D第一人称射击类游戏教程
- MySQL数据库存储过程讲解与实例
- C语言九条语句经典例题,一起温故而知新!!!
- 全国高中生计算机联赛,全国中学生五大学科竞赛