Android下的数据存储与訪问 --- 以文件的形式
Android下的数据存储与訪问 --- 以文件的形式 1.1 储存文件存放在手机内存中: // *** 储存数据到 /data/data/包名/files/jxn.txt文件里 String data = "test"; // /data/data/包名/files File filesDir = context.getFilesDir(); File file = new File(filesDir, "jxn.txt"); FileOutputStream fos = new FileOutputStream(file); fos.write(data.getBytes()); fos.flush(); fos.close(); // *** 从 /data/data/包名/files/jxn.txt文件里读取数据 String data = "test"; File filesDir = context.getFilesDir(); File file = new File(filesDir, "jxn.txt"); FileInputStream fis = new FileInputStream(file); BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); String text = reader.readLine(); reader.close(); 补充: 1,在Android上下文中openFileOutput()方法能够把数据写到/data/data/包名/files文件夹下 2。在Android上下文中openFileInput()方法能够读取/data/data/包名/files文件夹下的文件 3,详细的实现过程与在J2SE环境中保存数据到文件里是一样的。eg: // openFileOutput()方法的第一參数用于指定文件名,不能包括路径分隔符“/” ,假设文件不存在。Android会自己主动创建 // 存放路径:/data/data/包名/files/jxn.txt FileOutputStream outStream = context.openFileOutput("jxn.txt", Context.MODE_PRIVATE); SharedPreferences 1,Android提供了一个SharedPreferences类。它是一个轻量级的存储类。特别适合用于保存软件配置參数。 2。使用SharedPreferences保存数据,其最后是用xml文件存放数据,文件存放在/data/data/包名/shared_prefs文件夹下 3,context.getSharedPreferences(name,mode)方法的第一个參数用于指定该文件的名称,名称不用带后缀,Android会自己主动地加上.xml后缀。 // *** 储存数据到 /data/data/包名/shared_prefs/jxn.xml文件里 // /data/data/包名/shared_prefs/jxn.xml SharedPreferences sp = context.getSharedPreferences("jxn", Context.MODE_PRIVATE); // 获得一个Editor对象 Editor edit = sp.edit(); // 存数据 edit.putString("number", number); edit.putString("password", password); // 提交, 数据就保存到文件里了 edit.commit(); // *** 从 /data/data/包名/shared_prefs/jxn.xml文件里读取数据 SharedPreferences sp = context.getSharedPreferences("jxn", Context.MODE_PRIVATE); String number = sp.getString("number", null); String password = sp.getString("password", null); 1.2 储存文件存放在SD卡中: // *** 储存数据到 /mnt/sdcard/jxn.txt文件里 // 推断当前的手机是否有sd卡;假设有SD卡,而且能够读写。则方法返回Environment.MEDIA_MOUNTED String state = Environment.getExternalStorageState(); if(!Environment.MEDIA_MOUNTED.equals(state)) { return false; } String data = "test"; // 一般为 /mnt/sdcard 可是不同手机的sd卡的文件夹可能不同 File sdCardFile = Environment.getExternalStorageDirectory(); File file = new File(sdCardFile, "jxn.txt"); FileOutputStream fos = new FileOutputStream(file); fos.write(data.getBytes()); fos.flush(); fos.close(); // *** 从 /mnt/sdcard/jxn.txt文件里读取数据 // 推断当前的手机是否有sd卡 String state = Environment.getExternalStorageState(); if(!Environment.MEDIA_MOUNTED.equals(state)) { return null; } File sdCardFile = Environment.getExternalStorageDirectory(); File file = new File(sdCardFile, "jxn.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file))); String text = br.readLine(); br.close(); <!-- 设置写入和读取sd卡的权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
相关文章
- [android]android自动化测试六之命令行编译APK
- [Android Pro] http请求中传输base64出现加号变空格的解决办法
- [Android Memory] android 警告:Exported activity does not require permission
- 浅论Android网络请求库——android-async-http
- Failed to fetch URl https://dl-ssl.google.com/android/repository/addo Android SDK更新以及ADT更新出现问题的解决办法
- view--4种Android获取View宽高的方式
- Android开发者指南(14) —— Introduction
- Android studio中 android-support-v4报错问题
- android开发笔记之android.mk文件
- Android【报错】android.content.ActivityNotFoundException:activity in yourAndroidManifest.?
- Android kotlin 读取assets目录下的db文件显示在TextView上
- Android的报错提示:Failed to resolve: com.android.support.test.espresso:espresso-core:3.0.2
- Android 9.0 延时开机动画解决首次开机黑屏和去掉android正在启动的提示框
- Android 10.0 Launcher3 桌面样式默认为单层的修改
- 【Android 逆向】修改 Android 系统文件 ( default.prop 配置信息 | 修改 default.prop 配置信息文件 )
- 【Android 逆向】x86 汇编 ( 使用 IDA 解析 x86 架构的动态库文件 | 使用 IDA 打开动态库文件 | IDA 中查找指定的方法 )
- 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
- Android系统自带AEC/AGC/NC的demo
- Android与Chromium源码搜索工具(八十四)
- Android培训班(70)Dex文件里类定义dvmDefineClass
- Android - 文件读写操作 总结
- Android Studio 理解com.android.support:appcompat-v7:x.x.x依赖包(建议收藏)
- android上层应用apk到G-sensor driver的大致流程