1.SharedPreferences
数据量比较小的时候,一般就是密码…的保存用SharedPreferences
该文件是在data/data/package name/shared_prefs/aa中后缀.xml自动补上
写数据
//首先获取一个SharedPreferences对象
SharedPreferences settings = getSharedPreferences("aa", 0);
aa表示文件名,0表示模式
settings.edit()
开始编辑
.putString(NAME, fileheight.getText().toString())
NAME相当于标示符,第二个参数就是要保存的数据
.putString(PASSWORD, fileweight.getText().toString())
PASSWORD相当于标示符,第二个参数就是要保存的数据
.commit();
相当于保存起来
取出数据
SharedPreferences settings = getSharedPreferences("aa",0);
//获取一个SharedPreferences对象
String name = settings.getString(NAME, "");
//取出保存的NAME,如果不存在就用后面第二个参数作为返回值
String password = settings.getString(PASSWORD, "");
//取出保存的PASSWORD,如果不存在就用后面第二个参数作为返回值
2.Files文件路径data/data/package name/files/new1
从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。
写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。
读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。
is = this.openFileInput("new.txt");
若要使用其他程序目录下的文件,可以指定路径直接用File访问
例如:
String filepath= "//data//data//com.lsb.FileDealWith//files//new.txt";
File file = new File(filepath);
if(!file.exists())
return "error";
FileInputStream fIn = new FileInputStream(file);
另外编译程序之前,在res/raw/filename中保存一个静态文件,这样可以在程序中通过Resources.openRawResource (R.raw. new1)方法同样返回一个InputStream对象,直接读取文件内容。
Resources myResources = getResources();
is = myResources.openRawResource(R.raw.new1);
is.read(buff)的方式读出
3.Databases 路径/data/data/package_name/databases/filename
在Android API中包括了应用SQLite databases的接口,每个程序所创建的数据库都是私有的,换句话说,程序间无法相互访问对方的数据库。很简单,基本上都是数据库语言
package com.lsb.addsqlbyme;
import android.app.Activity;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class addsqlbyme extends Activity {
/** Called when the activity is first created. */
private static final String DATABASE_NAME = "create.db";
private static final String tablename = "lsbnewdb";
private static final String first = "first";
private static final String second = "second";
private String TAG = "Tag";
private Button add;
private Button delete;
lsbdatabase newdb1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(TAG, "create...");
newdb1 = new lsbdatabase(this);
add = (Button)findViewById(R.id.add);
delete = (Button)findViewById(R.id.delete);
add.setOnClickListener(addlisteren);
delete.setOnClickListener(deletelisteren);
}
private static class lsbdatabase extends SQLiteOpenHelper
{
lsbdatabase(Context context)
{//构造函数
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db)
{
String sql = "CREATE TABLE " + tablename + " (" + first+ " text not null, "
+ second + " text not null " + ");";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldversion, int newversion)
{
}
}
OnClickListener addlisteren = new OnClickListener()
{
public void onClick(View v)
{
SQLiteDatabase db = newdb1.getWritableDatabase();
/*数据库语言插入*/
String sql1 = "insert into " + tablename+" (" + first +", "+ second +")values('1','test');";
String sql2 = "insert into " + tablename+" (" + first +", "+ second +")values('2','test2');";
try
{
db.execSQL(sql1);//执行操作
db.execSQL(sql2);
Toast.makeText(addsqlbyme.this, "添加成功", Toast.LENGTH_SHORT).show();
}
catch(SQLException e)
{
Toast.makeText(addsqlbyme.this, "添加出错", Toast.LENGTH_SHORT).show();
}
}
};
OnClickListener deletelisteren = new OnClickListener()
{//删除指定数据
public void onClick(View v)
{
SQLiteDatabase db = newdb1.getWritableDatabase();
try
{//删除first = 1 的数据
db.delete(tablename, " first = '1'", null);
Toast.makeText(addsqlbyme.this, "删除成功", Toast.LENGTH_SHORT).show();
}
catch(SQLException e)
{
Toast.makeText(addsqlbyme.this, "删除出错", Toast.LENGTH_SHORT).show();
}
}
};
/*OnClickListener deletelisteren = new OnClickListener()
{//重新创建数据库
public void onClick(View v)
{
//负责一个可以写的sqlite数据库,如果没有创建就创建一个,如果已经创建就直接返回一个可写数据库
SQLiteDatabase db = newdb1.getWritableDatabase();
Log.d(TAG, "create");
String sql = "CREATE TABLE " + tablename + " (" + first
+ " text not null, " + second + " text not null " + ");";
try
{
db.execSQL("DROP TABLE IF EXISTS lsbnewdb");
//如果存在该表,就先删除,
db.execSQL(sql);//创建
setTitle("数据表成功重建");
}
catch (SQLException e)
{
setTitle("数据表重建错误");
}
}
};*/
}
分享到:
相关推荐
设置Builder)、文件处理(根据文件路径获取文件 判断文件是否存在 判断文件是否存在 重命名文件 判断是否是目录 判断是否是文件 获取临时文件 截取文件名称 获取真实的路径)、图片处理()、字符串处理(判断字符...
Android新编译规则Android.bp文件语法规则详细介绍,条件编译的配置案例。 Android.bp 文件首先是 Android 系统的一种编译配置文件,是用来代替原来的 Android.mk 文件的。在 Android7.0 以前,Android 都是使用 ...
Android文件系统同样是基于Linux的虚拟文件系统(VFS),通过系统软件层将不同的底层硬件的差异进行差分处理,然后封装统一的接口提供给应用层开发调用的。VFC设计的好处是让可以不同类型的技术人员专注于解决特定的...
android工程全局异常处理-将未处理异常日志保存在文件中,可后续开发提交至服务器
Android的apk文件反编译后,甚多的资源和java文件无法对应,java文件中引用的资源id变成十进制数字。本文将反编译apk的java文件和资源文件重新关联引用对应,使得java文件能准确无误地重新引用资源文件。 (1)将反...
Android资源文件批量分类处理
Android 异常处理并把详细信息写入到文件中(包括手机型号,错误版本)
1,读取项目中的所有strings.xml文件并导出为excel得到excel1。 2,可以将同样结构的excel2中的内容同步到excel1。 3,将所有excel1中的内容以自行配置(StringsToExcel.java)的文件夹(如"values-ko-rKR", "values-ja...
文件包含安卓端以及服务器端demo,Android 通过asynchttpclient发送多个文件
1、能够打开SVG文件 2、能进行缩放、位移、旋转能Matrix处理 3、内置了相应的开发API方便使用
Android的文件浏览器/文件选择器,可以集成到应用程序中,从内部/外部存储中浏览/选择文件。
Android如何处理带资源文件的JAR
android使用nanohttpd搭建httpserver实现文件上传及HTML5播放视频,亲测可用。 内含最新nanohttpd-all-2.3.1.jar,直接下载代码引入到eclipse就能用。HTML5播放使用的时候,需要把工程的movie.mp4拷贝到SD卡根目录下...
android图片下载及处理,处理包括缓冲加载,预取图片等。.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
Android实例源码-文件下载上传类安卓源代码(8例) Android 在线下载压缩包并解压到指定目录 Android快速框架+多线程下载框架的技术(Android + Afinal+gson) 一个支持暂停下载断点续传的源码 下载网络图片 (整合多...
本资料展示了安卓读取文本文件内容,并处理中文乱码的源代码,希望给需求者参考。
实现效果大家都知道了,如何在Android中实现呢,说白了就是对图片进行模糊化处理,小编先给大家讲一下Android高级模糊技术的原理,如下: 首先我创建了一个空的bitmap,把背景的一部分复制进去,之后我会对这个...
Android3系列 -4.事件机制及处理方式(附工程文件下载) http://blog.csdn.net/lijun7788/article/details/6686785
前端H5获取Android原生相册文件和拍照功能,比如H5的<input type>类型,ios不用做任何处理,而Android需要对webview重新
android 异常捕捉和日志文件保存