Android:数据持久化、Environment、SharedPreferences、内部存储internalStorage

简介:

1.数据持久化-SDCard

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//数据持久化-SDCard
findViewById(R.id.button1).setOnClickListener( new  OnClickListener()
{
     @Override
     public  void  onClick(View v)
     {
         //判断SDCard是否正常加载
         if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
         {
             //获取SDCard根目录
             File sdcardPath = Environment.getExternalStorageDirectory();
             //获取SDCard可用空间
             long  freeSpace = sdcardPath.getFreeSpace();
             Log.e( "space" , freeSpace +  "" );
         }
     }
});



2.SharedPreferences:(data/data/包名/shared_prefs/)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private  void  btn2Click()
     {
        // SharedPreferences sp = getPreferences(0);
         SharedPreferences sp = getSharedPreferences( "filename" , MODE_PRIVATE); //私有模式
         String str = sp.getString( "value" "noread" );
         boolean  bol = sp.getBoolean( "flag" true );
         textView.setText(str +  " "  + bol);
     }
     private  void  btn1Click()
     {
//        SharedPreferences sp = getPreferences(MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);//全局可读可写
         SharedPreferences sp = getSharedPreferences( "filename" , MODE_APPEND); //指定文件名,(内容)追加模式
         Editor editor = sp.edit();
         String value = editText.getText().toString();
         editor.putString( "value" , value);
         editor.putBoolean( "flag" false );
         editor.commit();
     }


3.内部存储internalStorage:(data/data/包名/files/)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
private  void  btn2Click()
     {
         try
         {
             FileInputStream fis = openFileInput( "fos1.txt" ); //读取文件
                 
             int  length =  0 ;
             byte [] buffer =  new  byte [ 1024 ];
             while (- 1  != (length = fis.read(buffer)))
             {
                 textView.setText( new  String (buffer, 0 ,length));
             }
         }
         catch  (FileNotFoundException e)
         {
             e.printStackTrace();
         }
         catch  (IOException e)
         {
             e.printStackTrace();
         }
             
             
     }
     private  void  btn1Click()
     {
         FileOutputStream fos =  null ;
         try
         {
             fos = openFileOutput( "fos1.txt" ,MODE_PRIVATE); //写入文件
             String str = editText.getText().toString();
             fos.write(str.getBytes());
             fos.flush();
         }
         catch  (FileNotFoundException e)
         {
             e.printStackTrace();
         }
         catch  (IOException e)
         {
             e.printStackTrace();
         }
         finally
         {
             if null  != fos )
             {
                 try
                 {
                     fos.close();
                 }
                 catch  (IOException e)
                 {
                     e.printStackTrace();
                 }
             }
         }
     }






本文转自 glblong 51CTO博客,原文链接:http://blog.51cto.com/glblong/1215469,如需转载请自行联系原作者
目录
相关文章
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1202 4
|
4月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
360 11
|
6月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
1763 2
|
9月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
631 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
开发工具 Android开发 开发者
Android平台如何不推RTMP|不发布RTSP流|不实时录像|不回传GB28181数据时实时快照?
本文介绍了一种在Android平台上实现实时截图快照的方法,尤其适用于无需依赖系统接口的情况,如在RTMP推送、RTSP服务或GB28181设备接入等场景下进行截图。通过底层模块(libSmartPublisher.so)实现了截图功能,封装了`SnapShotImpl.java`类来管理截图流程。此外,提供了关键代码片段展示初始化SDK实例、执行截图、以及在Activity销毁时释放资源的过程。此方案还考虑到了快照数据的灵活处理需求,符合GB/T28181-2022的技术规范。对于寻求更灵活快照机制的开发者来说,这是一个值得参考的设计思路。
300 1
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
378 2
|
存储 API 文件存储
47. 【Android教程】SharedPreferences 存储
47. 【Android教程】SharedPreferences 存储
226 2
|
存储 大数据 数据库
Android经典面试题之Intent传递数据大小为什么限制是1M?
在 Android 中,使用 Intent 传递数据时存在约 1MB 的大小限制,这是由于 Binder 机制的事务缓冲区限制、Intent 的设计初衷以及内存消耗和性能问题所致。推荐使用文件存储、SharedPreferences、数据库存储或 ContentProvider 等方式传递大数据。
606 0
|
存储 安全 API
Android经典实战之存储方案对比:SharedPreferences vs MMKV vs DataStore
本文介绍了 Android 开发中常用的键值对存储方案,包括 SharedPreferences、MMKV 和 DataStore,并对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例,帮助开发者根据项目需求选择最适合的存储方案,提升应用性能和用户体验。
885 1
|
缓存 API Android开发
Android经典实战之Kotlin Flow中的3个数据相关的操作符:debounce、buffer和conflate
本文介绍了Kotlin中`Flow`的`debounce`、`buffer`及`conflate`三个操作符。`debounce`过滤快速连续数据,仅保留指定时间内的最后一个;`buffer`引入缓存减轻背压;`conflate`仅保留最新数据。通过示例展示了如何在搜索输入和数据流处理中应用这些操作符以提高程序效率和用户体验。
222 6