- 浏览: 2197885 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问。Android为数据存储提供了如下几种方式:
首先给大家介绍使用文件如何对数据进行存储
Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的
openFileOutput(fileName, mode)方法详解:
第一参数:
用于指定文件名称,不能包含路径分隔符“/”。如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<packagename>/files目录,如:/data/data/com.ljq.activity/files/itcast.txt ,通过点击MyEclipse菜单“Window”-“Show View”-“Other”,
在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件
第二参数
用于指定操作模式,有四种模式
Context.MODE_PRIVATE = 0
默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。
可以使用Context.MODE_APPEND。
Context.MODE_APPEND = 32768
检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE = 1
表示当前文件可以被其他应用读取
Context.MODE_WORLD_WRITEABLE = 2
表示当前文件可以被其他应用写入
注意:
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
如果希望文件被其他应用读和写,可以传入: openFileOutput("ljq.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。
如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
或者直接使用文件的绝对路径:
注意:上面文件路径中的“com.ljq.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,
指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
案例:
FileUtil.java类:
MyList.java类:
- 文件
- SharedPreferences(参数)
- SQLite数据库
- 内容提供者(Content provider)
- 网络
首先给大家介绍使用文件如何对数据进行存储
Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的
public class FileActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { FileOutputStream outStream = this.openFileOutput("ljq.txt", Context.MODE_PRIVATE); outStream.write("测试数据...".getBytes()); outStream.close(); } }
openFileOutput(fileName, mode)方法详解:
第一参数:
用于指定文件名称,不能包含路径分隔符“/”。如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data/<packagename>/files目录,如:/data/data/com.ljq.activity/files/itcast.txt ,通过点击MyEclipse菜单“Window”-“Show View”-“Other”,
在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data/<package name>/files目录就可以看到该文件
第二参数
用于指定操作模式,有四种模式
Context.MODE_PRIVATE = 0
默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。
可以使用Context.MODE_APPEND。
Context.MODE_APPEND = 32768
检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE = 1
表示当前文件可以被其他应用读取
Context.MODE_WORLD_WRITEABLE = 2
表示当前文件可以被其他应用写入
注意:
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
如果希望文件被其他应用读和写,可以传入: openFileOutput("ljq.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);
android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。
如果要打开存放在/data/data/<package name>/files目录应用私有的文件,可以使用Activity提供openFileInput()方法。
FileInputStream inStream = this.getContext().openFileInput("ljq.txt");
或者直接使用文件的绝对路径:
File file = new File("/data/data/com.ljq.action/files/ljq.txt"); FileInputStream inStream = new FileInputStream(file);
注意:上面文件路径中的“com.ljq.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
对于私有文件只能被创建该文件的应用访问,如果希望文件能被其他应用读和写,可以在创建文件时,
指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录
案例:
FileUtil.java类:
package iaiai.test; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.OutputStream; public class FileUtil { /** * 保存数据 * * @param outputStream * @param content * @throws Exception */ public static void save(OutputStream outputStream, String content) throws Exception { outputStream.write(content.getBytes()); outputStream.close(); } /** * 读取数据 * * @param inputStream * @return * @throws Exception */ public static String read(InputStream inputStream) throws Exception { // 往内存写数据 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); // 缓冲区 byte[] buffer = new byte[1024]; int len = -1; while ((len = inputStream.read(buffer)) != -1) { byteArrayOutputStream.write(buffer, 0, len); } // 存储数据 byte[] data = byteArrayOutputStream.toByteArray(); byteArrayOutputStream.close(); inputStream.close(); return new String(data); } }
MyList.java类:
package iaiai.test; import android.app.Activity; import android.content.Context; import android.os.Bundle; public class MyList extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { FileUtil.save(openFileOutput("test.txt", Context.MODE_PRIVATE), "这是测试数据....."); } catch (Exception e) { e.printStackTrace(); } } }
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 627本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1104颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 996从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1170Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1006Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 840前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 930监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 801在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 953最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1328##MediaQuery MediaQuery.of(con ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1119当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 780setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1507问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 767底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1782点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1372import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2318TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1553一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 867Flutter最近很火,我抽出了一点时间对Flutter进行了 ... -
关于android O 上 NotificationChannel 的一些注意事项
2019-07-04 11:47 932最近在适配android O,遇到个问题,应用中原本有设置界面 ...
相关推荐
本文实例讲述了Android使用文件进行数据存储的方法。分享给大家供大家参考。具体如下: 很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问。Android为数据存储提供了如下几种方式: 文件 ...
Android提供了多种数据存储方式,其中包括使用File类进行文件存储。本教程将深入探讨如何在Android中利用File类进行数据操作,包括创建、读取、修改和删除文件,以及文件路径的处理。 1. **基本概念** - **File类*...
"Android存储字符串数据到...使用FileUtils工具类可以非常方便地将字符串数据存储到txt文件中,从而满足我们的需求。但是,需要注意的是,在使用FileUtils工具类时,需要确保文件路径和文件名的正确性,以免出现错误。
一、Android文件存储基础 Android提供了多种本地数据存储方式,如内部存储、外部存储、SQLite数据库、SharedPreferences等。文件存储是一种简单直接的方法,适用于存储非结构化的文本、图片或其他文件类型。在...
本教程将详细介绍Android中的三种主要数据存储方式:SharedPreferences存储、内部文件存储以及数据库存储。 1. SharedPreferences存储 SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用...
Android 平台中实现数据存储的五种方式分别是:使用 SharedPreferences 存储数据、文件存储数据、SQLite 数据库存储数据、使用 ContentProvider 存储数据和网络存储数据。 使用 SharedPreferences 存储数据 ...
在Android应用开发中,数据存储和文件管理是至关重要的部分,因为这关乎到应用程序如何持久化数据、如何读写文件以及如何有效地管理用户数据。"老罗android视频开发源码和ppt--android存储数据和文件.rar"这个压缩包...
本案例是关于如何使用Android的数据存储机制,特别是文件内部存储,来创建一个简单的备忘录应用程序。以下是这个案例涉及到的关键知识点: 1. **数据存储方式**: - Android提供了多种数据存储方式,如...
总结起来,Android文件存储涉及多种策略,根据数据类型、访问需求和安全性选择合适的存储方式。理解并熟练掌握这些技术对于开发高效、稳定的应用至关重要。在实际开发中,还需要注意数据备份、权限管理和文件清理等...
在Android系统中,传统的文件存储方式通常需要应用获取相应的文件读写权限,以便在外部存储(如SD卡)上保存和访问数据。然而,随着Android系统的更新,特别是自Android 6.0(Marshmallow)引入运行时权限管理以来,...
在Android系统中,数据存储是应用程序管理用户数据的关键部分。Android提供了多种数据存储方式,以适应不同的需求,如轻量级的数据保存、持久化的数据存储等。以下将详细阐述Android数据存储的相关知识点。 1. ...
Android的文件操作跟Java是一样的,文件操作分为输入流(InputStream)和输出流(OutputStream),输入流用于获取文件数据,输出流用于存储文件。 详细介绍请参考博文:...
内部文件存储是 Android 中的一种数据存储方式,它可以存储应用程序中的文件数据。内部文件存储的优点是可以存储大量数据,缺点是存储空间有限。内部文件存储的使用方法是通过 openFileOutput() 方法来创建文件,并...
本资源“Android学习之数据存储”提供了一些关于Android数据存储的源码,这对于理解Android数据存储机制及其实践应用非常有帮助。 在Android中,有多种方式来实现数据存储,包括: 1. **SharedPreferences**:这是...
在Android应用开发中,有时需要处理大量的结构化数据,这时Excel文件就成为一个理想的存储选择,因为它们便于人类阅读,同时也方便程序进行数据处理。本文将详细介绍如何在Android中实现Excel文件的读取与写入。 ...
数据存储在XML文件中,安全性较低,但易于使用。 2. **内部存储**: 内部存储是应用私有的,数据安全且不易被其他应用访问。它适用于存储应用的私密数据,如配置文件、用户数据等。文件存储在/data/data/应用包名/...
本文将详细介绍如何在Android中实现这一功能,主要涉及的技术点包括文件操作、数据序列化以及第三方库的使用。 首先,我们需要一个能够处理Excel文件的库。Apache POI是一个流行的Java库,可以用来创建、修改MS ...
在Android平台上,对TXT文件进行保存和读取是常见的数据持久化操作,尤其适用于存储少量结构化的文本数据。本文将详细讲解如何在Android应用中实现TXT文件的保存和读取功能,以及涉及到的相关知识点。 首先,我们...
在Android系统中,文件管理是应用程序开发者必须掌握的重要技能之一,尤其是在处理用户数据,如图片文件时。本文将深入探讨Android的分区存储机制,并详细讲解如何修改和删除图片文件。 一、Android分区存储概述 ...