`
lishubing1126
  • 浏览: 8301 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

android文件处理

阅读更多

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("数据表重建错误");

}

}

};*/

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics