Android中用JSONj进行网络数据交互

Android中用JSONj进行网络数据交互
Android中用JSONj进行网络数据交互

服务器端:

public void doGet(HttpServletRequest request,

HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

String acceptjson = "";

BufferedReader br = new BufferedReader(new

InputStreamReader((ServletInputStream)request.getInputStream(), "utf-8"));

StringBuffer sb = new StringBuffer("");

String temp;

while ((temp = br.readLine()) != null)

{

sb.append(temp);

}

br.close();

acceptjson = sb.toString();

System.out.println(acceptjson);

JSONArray js=JSONArray.fromObject(acceptjson);

PrintWriter out = response.getWriter();

// 封装到实体类中

VehicleFaultInfo v = new VehicleFaultInfo();

for (Object ob : js) {

JSONObject jo=JSONObject.fromObject(ob);

v.setName(jo.getString("name"));

v.setCreateTime(jo.getString("createTime"));

v.setIdno(jo.getString("idno"));

v.setFaultRecord(jo.getString("faultRecord"));

v.setPenalty(jo.getDouble("penalty"));

v.setLicense(jo.getString("license"));

}

if (vedao.save(v))

// 响应保存结果

out.print("1");

else

// 响应保存结果

out.print("0");

out.flush();

out.close();

out.flush();

out.close();

}

Android客户端:

private StringEntity makeEntity_JSON(){

String name = myEditText1.getText().toString();

String idno = myEditText2.getText().toString();

String license = myEditText3.getText().toString();

String penalty = myEditText4.getText().toString();

String faultRecord = changeType(mySpinner.getSelectedItemPosition());

Date date = new Date();

String dateStr = new SimpleDateFormat("yy-MM-dd HH:mm").format(date);

JSONArray jsarray=new JSONArray();

JSONObject js=new JSONObject();

try {

js.put("name", name);

js.put("idno", idno);

js.put("license", license);

js.put("penalty", Double.parseDouble(penalty));

js.put("faultRecord", faultRecord);

js.put("createTime", dateStr);

jsarray.put(js);

return new StringEntity(jsarray.toString(),"utf-8");

} catch (JSONException e) {

e.printStackTrace();

return null;

}catch (UnsupportedEncodingException e) {

e.printStackTrace();

return null;

}

}

private boolean submit(){

String url=HttpUtil.BASE_URL+"/servlet/VehicleServlet";

HttpPost request = HttpUtil.getHttpPost(url);

request.setEntity(makeEntity_JSON());

String result= HttpUtil.queryStringForPost(request);

if(result!=null&&result.equals("1"))return true;

return false;

}

android本地文件读取和保存字符串

android将数据存储到文件和从文件中读取字符串 1.读取数据(filename是读取文件的名称,reads是返回读取的字符串) private String readFile(String filename) { try { FileInputStream fis = this.openFileInput(filename); byte[] b = new byte[1024]; ByteArrayOutputStream baos = new ByteArrayOutputStream(); while (fis.read(b) != -1) { baos.write(b, 0, b.length); } baos.close(); fis.close(); reads = baos.toString(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return reads; } 2.写入保存(str是要存入的字符串,filename是保存文件的名称) private void saveFile(String str, String filename) { FileOutputStream fos; try { fos = this.openFileOutput(filename, Activity.MODE_PRIVATE); fos.write(str.getBytes()); fos.flush(); fos.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace();

计科1141班胡志泉安卓实验6 - 数据存储与访问

GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验6:数据存储与访问课程名称移动编程课程号16242215x0学院(系) 数学与计算机专业计算机科学与技术班级计科1141班学生姓名学号实验地点科技楼425 实验日期2017.4.1 一、实验目的 1.熟悉在Android Studio开发环境下编写Android应用程序的流程; 2.理解在Android Studio开发环境下进行用户界面设计的基本方法; 3.掌握应用Android碎片控件Fragment开发适用于大屏幕的应用程序的方法。 4.掌握应用Android存储方法SharePreferences的应用方法。 二、实验内容 在Android Studio开发环境下,使用Android的Fragment碎片控件、TextView文本标签控件、ListView列表控件、FrameLayout框架布局控件,利用SharePreferences存储方法,采用双页显示模式实现一个适用于大屏幕设备的简易新闻阅读器应用程序。 三、实验设备 Android Studio 四、实验结果 用户界面布局设计采用了水平线性布局方式,分为左右两个碎片Fragment;其中,左侧为新闻标题列表子界面,右侧为新闻详细内容子界面。当点击新闻标题列表中的某一标题时,右侧的Fragment将显示相应新闻标题的详细内容。

五、源代码 主Activity的布局文件activity_main.xml的源代码

Android数据存储和数据访问

南昌航空大学实验报告 二0一4 年11 月14 日 课程名称:Android 实验名称:Android数据存储和数据访问 班级:姓名:同组人: 指导教师评定:签名: 一:实验目的 掌握SharedPreferences的使用方法; 掌握各种文件存储的区别与适用情况; 了解SQLite数据库的特点和体系结构; 掌握SQLite数据库的建立和操作方法; 理解ContentProvider的用途和原理; 掌握ContentProvider的创建与使用方法 二:实验工具 Eclipse(MyEclipse)+ ADT + Android2.2 SDK; 三:实验题目 1.应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。 2.尝试把第1题的用户自己定义配置信息,以INI文件的形式保存在内部存储器上。 3.使用代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如下表所示:

4.建立一个ContentProvider,用来共享第3题所建立的数据库; 四:实验代码 Internal public class Internal extends Activity { private final String = ""; private TextView labelView; private TextView displayView; private CheckBox appendBox ; private EditText entryText; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/2a10079969.html,yout.main); labelView = (TextView)findViewById(https://www.360docs.net/doc/2a10079969.html,bel); displayView = (TextView)findViewById(R.id.display); appendBox = (CheckBox)findViewById(R.id.append); entryText = (EditText)findViewById(R.id.entry); Button writeButton = (Button)findViewById(R.id.write); Button readButton = (Button)findViewById(R.id.read); writeButton.setOnClickListener(writeButtonListener); readButton.setOnClickListener(readButtonListener); entryText.selectAll(); entryText.findFocus(); } OnClickListener writeButtonListener = new OnClickListener() { @Override public void onClick(View v) {

Android数据存储五种方式总结(DOC)

Android数据存储五种方式总结 本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种:使用SharedPreferences存储数据 适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用 程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口令密码等 核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。通过DDMS的File Explorer面板,展开文件浏览树,很明显SharedPreferences数据总是存储在/data/data//shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor 对象实现。SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中name表示要操作的xml文件名,第二个参数具体如下: Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应 用程序读、写。 Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。 Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences 数据能被其他应用程序读,写 Editor有如下主要重要方法: SharedPreferences.Editor clear():清空SharedPreferences里所有数据 SharedPreferences.Editor putXxx(String key , xxx value):向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据 SharedPreferences.Editor remove():删除SharedPreferences中指定key对应的数据项 boolean commit():当Editor编辑完成后,使用该方法提交修改 实际案例:运行界面如下

Android中5种数据存储方式

Android中5种数据存储方式 1概述 SharedPreferences存储数据。 ContentProvider存储 文件存储 SQLlite存储 网络存储 Preference,File,DataBase这三种方式分别对应的目录是: ●/data/data/Package Name/Shared_Pref ●/data/data/Package Name/files ●/data/data/Package Name/database 关于这五种数据存储方式,根据实际情况选择最合适的,秉持最简单原则,也就是说能用简单的方式处理,就不要用复杂的方式。比如存储几个数据或简单对象,用SharedPreference也能做到,就没必要写个ContentProvider。 ●简单数据和配置信息,SharedPreference是首选; ●如果SharedPreferences不够用,那么就创建一个数据库; ●结构化数据,一定要创建数据库,虽然这稍显烦锁,但是好处无穷; ●文件就是用来存储文件(也即非配置信息或结构化数据),如文本文件,二进制文件,PC文件, 多媒体文件,下载的文件等等; ●尽量不要创建文件; ●如果创建文件,如果是私密文件或是重要文件,就存储在内部存储,否则放到外部存储。

2SharedPreferences存储数据 SharedPreferences 可以将数据保存到应用程序的私有存储区,这些存储区中的数据只能被写入这些数据的软件读取。 它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。 其存储位置在/data/data/<包名>/shared_prefs 目录下。 使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。 例如:登录用户的用户名与密码。 步骤如下: (1)使用Activity类的getSharedPreference 方法获得SharePreferences对象。其中存储key-value 的文件名称由getSharedPreferences方法的第一个参数指定;第二个参数表示所创建的数据文件的访问权限(“MODE_WORLD_READABLE”表示其他用户有“读”的权限; “MODE_WORLD_WRITEABLE ” 表示其他用户有“写”权限;MODE_PRIVATE 和 MODE_APPEND创建的文件对其他用户都是不可访问的); (2)使用SharedPreferences 接口的edit 获得SharedPreferences.Editor对象; (3)通过Sharedreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示value 不同数据类型。例如,Boolean类型的value需要用putBoolean方法,字符串类型的value需要用putString方法; (4)通过Sharedreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作,只有在事务结束后进行提交,才会将数据真正保存在数据库中。保存key-value也是一样,在使用putXxx方法指定了key-value对后,必须调用commit方法才能将key-value对真正保存在相应的文件中。

Android数据存储框架GreenDao 3.0使用详解

Android数据存储框架GreenDao 3.0使用详解 GreenDao 3.0 的使用 1.简介 简单的讲,GreenDao是一个将对象映射到SQLite数据库中的轻量且快速的ORM 解决方案。(GreenDaois a light & fast ORM solution that maps objects to SQLite databases.) 2.使用 2-1.导入相关的包 compile 'org.greenrobot:greendao:3.2.0' 2.2.配置(Module) greendao { schemaVersion 1 //数据库版本 daoPackage 'com.lee.codeplus.db' //默认生成的包名 targetGenDir 'src/main/java' //根目录 } 2.3.在build.gradle(Project)中进行配置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' } } 3.使用 3.1 实体类的创建 @Entity public class ArticleFile { @Id private Long id; private String Category; private String author; private String createdAt; private String objectId; private String postType; private String textContent; private String updatedAt; private String webUrl; }

安卓学习之数据存储与访问

SharedPreferences: Activity之间的数据传递除了通过intent来传递外,还可以使用SharedPreferences来共享数据。 SharedPreferences是一种轻量级数据存储方式,能够实现不同应用程序间数据共享。 SharedPreferences使用键值对(Key-Value)的方式把简单数据类型(boolean、int、float、long和String)存储在应用程序的私有目录下自己定义的xml文件中。 私有目录是:/data/data/应用程序包名/shared_prefs/ SharedPreferences编程: (1)写入数据: //获得SharedPreferences对象(如果不存在则新建) SharedPreferences sp = getSharedPreferences(名称,访问模式); //名称是:SharedPreferences数据保存的XML文件名 //获得可编辑对象 SharedPreferences.Editor editor = sp.edit(); editor.putString(“Name”,”abc”); //p ut方法写数据(key-value) //一定要提交才能保存 https://www.360docs.net/doc/2a10079969.html,mit(); (2)读取数据:

//获得SharedPreferences对象(如果不存在则新建) SharedPreferences sp = getSharedPreferences(名称, 访问模式); String name = sp.getString("Name", "DefaultVal"); //get方法读数据//第2个参数:在无法获取值的时候使用的缺省值 SharedPreferences支持的三种访问模式: ?MODE_PRIVATE (=0,私有):仅创建SharedPreferences的程序有 权限对其进行读取或写入。 ?MODE_WORLD_READABLE (=1,全局读):创建程序可以对其进 行读取或写入,其它应用程序只具有读取操作的权限,但没有写入操作的权限。 ?MODE_WORLD_WRITEABLE (=2,全局写):所有程序都可以对其 进行写入操作,但没有读取操作的权限。 SQLite数据库: Android 在运行时(run-time)集成了SQLite,所以每个Android 应用程序都可以使用SQLite 数据库。 SQLite特点: ?SQLite是一款开源的、轻量级的、嵌入式的、关系型数据库。 ?普通数据库的管理系统比较庞大和复杂,会占用了较多的系统 资源,轻量级数据库SQLite的特点:

android数据存储

在Android中,提供了三种数据存储的途径,和两种存储方式。 三种途径: l 系统配置(Shared Preferences): 这类应用主要是系统的配置信息的保存,比如我给程序界面设置了颜色,我想在下一次启动时还是能够保留上次设置的颜色。由于Android系统的界面是采用Activity栈的形式,在系统资源不足时,会收回一些界面,那么,我想有些操作也是需要在不活动时保留下来的,等再次激活时能够显示出来。 l 文件(Files) Android是一个操作系统,自然而然对存储系统会有一个管理,因为采用提Linux核心,所有在Andorid系统中,文件也是Linux的形式。当然我们的应用程序也就可以把数据以文件的形式记录下来咯。 l 数据库(SQLite Databases) 在Andriod系统中,也少不了一个数据库管理,但考虑到系统资源(内存,硬盘),选择了轻便型的数据库SQLite,这是一个开源的关系型数据库,与普通关系型数据库一样,也具有ACID的特性。 两种存储方式: 主要是根据数据库共享方式来分 l 程序内自用: 通常我们程序中需要的数据一般都是为本程序来用,所以我们用上面三种途径来创建的程序都是默认为本程序使用,其他程序无法获取操作。 我们ADB插件功能在命令行下输入:adb shell 来进入手机的文件系统,进入CD /data/data 目录。然后ls查看,我们发现,我们在系统中安装的每个程序在这里都有一个文件夹,再次进入我们的程序后ls查看,会出现几个目录:shared_prefs、files、databases,这几个目录其实就是存的我们程序内自用的数据,内容分别就是由上面三种途径创建的,当然如果没有创建过,这个目录可能不存在。 l 数据需要共享: 这类数据通常是我们的一些共用数据,很多程序都会来调用,比如电话薄数据,就不可能存为私有的了。当然,这种方式的话,上面三种途径中的系统配置就不适用了,“系统配置”

安卓数据存储详解-孙霞霞著

【sharePreferences】共享参数: 概念:SharedPreferences是Android系统提供的一个通用的数据持久化框架, 用于存储和读取key-value类型的原始基本数据类型对,目前支持String、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法 使用SharedPreferences来存储。 他通常以xml文件方式存储在data文件夹中,文件存储路径: /data/data/{appPackageName}/shared_prefs/{filename} SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名, 上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家 积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。 注:SharePreferenced本身的对象不能对数据进行存储和修改,只能获取到数据,是通过Editor的实例化对象对数据进行存储和修改。 常用方法 1.Context.getSharedPreferences(String, int mode) mode的属性值有: Context.MODE_PRIVATE:指定该SharedPreferences的数据只能 被本应用程序读、写 Context.MODE_APPEND:新内容追加到原内容后 Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据 能被其他应用程序读,但是不支持写 Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据 能被其他应用程序读、写会覆盖原数据; 可以使用"+"连接这些权限 2.contains(String key) 3.Map getAll() 4.getString(String key, String defValue) 5.SharedPreferences.Editor edit() putString(String key, String value) putStringSet(String key, Set values) putBoolean(String key, boolean value) clear() commit() 编辑完数据之后必须提交

Android中数据存储方式

1. sharedPreferences 类似于存储window下的配置文件(.ini),sharedPreferences中存储的信息都是以键值对的形式存储 键值 ffppp 用sharedPreferences存储信息只能是基础数据类型 如: int/float/string/stringSet/Long/boolean SharedPreferences生成的存储文件路径:(默认保存名字为当前Activity.xml) data/data/包名/shared_prefs/Activity.xml 2. 利用SharedPreferred进行数据存储步骤: 向SharedPreferred中写入数据 1)获得SharedPreferences.Editor对象SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); 2)利用editor对象的putXX方法向editor中以键值对的形式存储信息(注意:存储基本数据类型数据) editor.putString("键名", 值); editor.putString("password", password.getText().toString()); 3)当editor信息存储完成后,提交,此时会在对应文件夹下生产.xml文件(用此种方式生产的xml文件名默认是 Activity.xml) https://www.360docs.net/doc/2a10079969.html,mit();-生成.xml文件 读取SharedPreferred中数据 1)获得SharedPreferred对象 SharedPreferences sp = getPreferences(MODE_PRIVATE); 2)通过SharedPreferred的对象的getXX(“键名”,默认值)的方法可以取出存在.xml文件中的对应信息

Android数据存储(Data Storage)

Android提供几种保存持久化应用程序数据的选择。依赖具体的需求来选择解决适合的方案,如数据应该是应用程序私有的还是共享的,以及数据所需要的存储空间等。 以下是可选择的数据存储方案: 共享偏好(Shared Preferences) 用键---值对的形式保存私有的原始数据。 内部存储(Internal Storage) 在设备的内存上保存私有的数据。 外部存储(External Storage) 在共享的外部存储器上保存公共的数据。 SQLite数据库 在私有的数据库中保存结构化的数据。 网络连接(Network Connection) 把数据保存在自己的互联网服务器上。 Android提供了内容提供器(content provider),能够你的私有数据公开给其他应用程序。内容提供器是一种公开应用程序数据的读写访问权限的可选组件,这种读写访问会受到你所施加的任何限制的影响。 使用共享偏好 SharedPreference类提供了一个一般性的框架,它允许用原始类型数据的键---值对的形式来保存和获取持久化的数据。使用SharedPreference能够保存任意类型的原始类型数据:布尔型、浮点型、整数型、以及字符串。这种数据会跨越用户的会话周期被持久化保存(即使是应用程序进程被杀死)。 有两种方法来为应用程序获取SharedPreferences对象: 1.getSharedPreferences()方法---如果需要多个用名称来标识的偏好文件,就要使用这个方法, 它的第一个参数要指定偏好文件的名称。 2.getPreferences()方法---如果仅需要针对Activity的一个偏好文件,就使用这个方法。因为 这个方法仅返回当前Activity的偏好文件,不需要提供偏好文件的名称。 以下是向偏好文件中写入数据的方法: 1.调用edit()方法来获取一个SharedPreferences.Editor对象; 2.调用诸如putBoolean()和putString()等方法来添加要保存的值; 3.调用commit()方法来提交要保存的新值。 使用SharedPreferences对象的诸如getBoolean()和getString()等方法来读取被保存的值。 以下示例代码保存了计算器的静音按键模式偏好: public class Calc extends Activity{ public static final String PREFS_NAME ="MyPrefsFile"; @Override protected void onCreate(Bundle state){ super.onCreate(state); ... // Restore preferences SharedPreferences settings = getSharedPreferences(PREFS_NAME,0); boolean silent = settings.getBoolean("silentMode",false);

Android-14 数据存储(1)—Preference存储数据

第14讲数据存储(1)—Preference存储数据 Android中有三种持久化数据的方法:SQLite数据库、文件存储、Preference。 三种方法各有专攻,而其中Preference是以类似Map的键值对形式存储的,最适合用来保存用户个人设置之类的信息,比如是否打开音效,音量大小、界面颜色等等。比用文件来保存方便读取。而SQLite数据库用来保存大量的数据。 基础知识讲解:SharedPreferences与Editor简介 ---SharedPreferences 主要用来保存类似配置信息格式的数据,它保存的数据是key-value对。 它主要负责读取应用的Preference数据。查看SharedPreference类的源码,重要的方法有:boolean contains(String key) String getString(String key, String defValue) float getFloat(String key, float defValue) ……可以返回各种基本类型 getAll():获取SharedPreference中的所有的key value对 Editor edit():得到一个Editor对象 ---Editor类 SharedPreferences接口本身并没有提供写入数据的能力,而是通过SharedPreference的内部接口,即Editor对象所提供的写入方法来向SharedPreferences中写入数据,重要的方法有: Editor putString(String key, String value); Editor putInt(String key, int value); ……可以写入各种基本类型 boolean commit(); 当Editor编辑完成时,提交修改,类似于事务 Editor remove(String key); Editor clear(); 清空所有已有的SharedPreference数据 ---得到SharedPreferences的实例 Context(Activity类的父类)类提供的方法: preferences= this.getSharedPreferences("setting", Context.MODE_PRIVATE); 第一个参数表示在手机内存中所写入的持久化文件为setting.xml,位置如下 第二个参数表示权限,控制所写的配置文件是否能由其他的程序所读取或修改 例:对前例所开发的记事本程序进行界面颜色的设定。包括:文本框的颜色、按钮的颜色等,并持久化保持到文件中,下次打开程序,能够读取到上次设定。

Android实验9 Android数据存储和IO答案

一、实验名称:实验9 Android数据存储和IO 二、实验日期: 三、实验目的: 1、了解SharedPreferences的存储数据的格式及位置,能够读写其他应用程序的SharedPreferences。 2、File存储数据 3、掌握SQLite存储数据方法。 4、会使用SQLiteOpenHelper辅助类,进行操作数据库。 四、实验用的仪器和材料:Windows+Eclipse+jdk+sdk+adt 五、实验的步骤和方法: 1、读写其他应用程序SharedPreferences。 Week09_01_01Activity.java package https://www.360docs.net/doc/2a10079969.html,b01_01; import https://www.360docs.net/doc/2a10079969.html,b01.R; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.widget.TextView;

public class Week09_01_01Activity extends Activity { SharedPreferences preferences; TextView show; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/2a10079969.html,yout.main); show=(TextView)findViewById(R.id.show); preferences = getSharedPreferences("count", MODE_WORLD_READABLE); //读取SharedPreferences里的count数据 int count = preferences.getInt("count" , 0); //显示程序以前使用的次数 show.setText("程序以前被使用了"+count+"次。"); Editor editor = preferences.edit(); //存入数据 editor.putInt("count" , ++count); //提交修改 https://www.360docs.net/doc/2a10079969.html,mit(); } } Week09_01_02Activity.java

Android的5种数据存储方式

Android提供了5种方式存储数据: --使用SharedPreferences存储数据; --文件存储数据; --SQLite数据库存储数据; --使用ContentProvider存储数据; --网络存储数据; 一:使用SharedPreferences存储数据 首先说明SharedPreferences存储方式,它是Android提供的用来存储一些简单配置信息的一种机制, 例如:登录用户的用户名与密码。其采用了Map数据结构来存储数据,以键值的方式存储,可以简单的读取与写入,具体实例如下: voidReadSharedPreferences(){ String strName,strPassword; SharedPreferences user = getSharedPreferences(“user_info”,0); strName = user.getString(“NAME”,””); strPassword = user getString(“PASSWORD”,””); } voidWriteSharedPreferences(String strName,StringstrPassword){ SharedPreferences user = getSharedPreferences(“user_info”,0); uer.edit(); user.putString(“NAME”, strName); user.putString(“PASSWORD”,strPassword); https://www.360docs.net/doc/2a10079969.html,mit();

} 数据读取与写入的方法都非常简单,只是在写入的时候有些区别: 先调用edit()使其处于编辑状态,然后才能修改数据,最后使用commit()提交修改的数据。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data//shares_prefs下。 以上面的数据存储结果为例,打开后可以看到一个user_info.xml的文件,打开后可以看到: moandroid SharedPreferences 使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。 实例: /Chapter09_Data_01/src/com/amaker/test/MainActivity.java View Code /Chapter09_Data_01/res/layout/main.xml

android获取手机内部存储空间和外部存储空间

获取android文件系统的信息,需要Environment类和StatFs类的支持。 (1)Environment 是一个提供访问环境变量的类,常用的方法有: A,getDataDirectory() ,返回File ,获取Android 数据目录。 B,getDownloadCacheDirectory(),返回File ,获取Android 下载/缓存内容目录。 C,getExternalStorageDirectory() ,返回File ,获取外部存储目录即SDCard。 D,getExternalStorageState() ,返回File,获取外部存储设备的当前状态。 E,getRootDirectory() ,返回File,获取Android 的根目录。 常用的变量,以getExternalStorageState返回值为例: A,MEDIA_BAD_REMOVAL,表明SDCard 被卸载前己被移除。 B,MEDIA_CHECKING,表明对象正在磁盘检查。 C,MEDIA_MOUNTED,表明对象存在并具有读/写权限。 D,MEDIA_MOUNTED_READ_ONLY,表明对象权限为只读。 E,MEDIA_NOFS,表明对象为空白或正在使用不受支持的文件系统。 F,MEDIA_REMOVED,不存在SDCard。 G,MEDIA_SHARED,表明存储媒体正在通过USB共享。 H,MEDIA_UNMOUNTABLE,表明存储媒体无法挂载。 I, MEDIA_UNMOUNTED,表明存储媒体没有挂载。 (2)StatFs类,一个模拟linux的df命令的一个类,获得SD卡和手机内存的使用情况。StatFs 常用方法: A,getAvailableBlocks(),返回Int,获取当前可用的存储空间。 B,getBlockCount(),返回Int,获取该区域可用的文件系统数。 C,getBlockSize(),返回Int ,大小,以字节为单位 D,getFreeBlocks(),返回Int ,该块区域剩余的空间。 (3)一个获取系统和SD卡可用容量及总总量的实例,获取容量函数如下: [java] 01.i m p o r t a n d r o i d.o s.E n v i r o n m e n t; 02.i m p o r t a n d r o i d.o s.S t a t F s; 03.i m p o r t j a v a.i o.F i l e; 04.p u b l i c l o n g g e t A v a i l a b l e I n t e r n a l M e m o r y S i z e(){ 05.F i l e p a t h=E n v i r o n m e n t.g e t D a t a D i r e c t o r y();//获取数据目录 06.S t a t F s s t a t=n e w S t a t F s(p a t h.g e t P a t h()); 07.l o n g b l o c k S i z e=s t a t.g e t B l o c k S i z e(); 08.l o n g a v a i l a b l e B l o c k s=s t a t.g e t A v a i l a b l e B l o c k s(); 09.r e t u r n a v a i l a b l e B l o c k s*b l o c k S i z e; 10.} 11. 12.p u b l i c l o n g g e t T o t a l I n t e r n a l M e m o r y S i z e(){ 13.F i l e p a t h=E n v i r o n m e n t.g e t D a t a D i r e c t o r y(); 14.S t a t F s s t a t=n e w S t a t F s(p a t h.g e t P a t h()); 15.l o n g b l o c k S i z e=s t a t.g e t B l o c k S i z e(); 16.l o n g t o t a l B l o c k s=s t a t.g e t B l o c k C o u n t(); 17.r e t u r n t o t a l B l o c k s*b l o c k S i z e; 18.} 19.无法加载插件。

Android_数据存储与访问

很多时候我们的软件需要对处理后的数据进行存储或再次访问。Android为数据存储提供了多种方式,分别有如下几种: ●文件 ●SharedPreferences ●SQLite数据库 ●内容提供者(Content provider) ●网络 使用文件进行数据存储 首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。public class FileActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { ... FileOutputStream outStream = this.openFileOutput("itcast.txt", Context.MODE_PRIVATE); outStream.write("传智播客".getBytes()); outStream.close(); } } openFileOutput()方法的第一参数用于指定文件名称,不能包含路径分隔符“/” ,如果文件不存在,Android 会自动创建它。创建的文件保存在/data/data//files目录,如:/data/data/cn.itcast.action/files/itcast.txt ,通过点击Eclipse菜单“Window”-“Show View”-“Other”,在对话窗口中展开android文件夹,选择下面的File Explorer视图,然后在File Explorer视图中展开/data/data//files目录就可以看到该文件。openFileOutput()方法的第二参数用于指定操作模式,有四种模式,分别为:Context.MODE_PRIVATE = 0 Context.MODE_APPEND = 32768 Context.MODE_WORLD_READABLE = 1 Context.MODE_WORLD_WRITEABLE = 2 Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。 Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。 MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。 如果希望文件被其他应用读和写,可以传入: openFileOutput("itcast.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE); android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,

相关主题
相关文档
最新文档