初级教程之 三 Android四种存储方式

来源:互联网 发布:qq飞车黄金米格数据 编辑:程序博客网 时间:2024/06/01 21:52

初级教程,Android存储:

package com.example.storage;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;

import android.app.Activity;
import android.content.ContentValues;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
    }
                //data的存储方式,留意:关流,读写删的初步识别
            public void data(View v) throws IOException{
                //写入信息
                FileOutputStream fos=openFileOutput("a.txt", MODE_APPEND);
                fos.write("明月及时有,把酒问青天!".getBytes());
                fos.close();
                Toast.makeText(this, "创建data文件成功", Toast.LENGTH_LONG).show();
                //读取信息
                FileInputStream fis = openFileInput("a.txt");
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                String readLine = br.readLine();
                br.close();
                Toast.makeText(this,readLine , Toast.LENGTH_LONG).show();
                //删除信息
                boolean deleteFile = deleteFile("a.txt");
                if(deleteFile){
                    Toast.makeText(this,"删除完美的成功!" , Toast.LENGTH_LONG).show();
                }else{
                    Toast.makeText(this,"删除失败!" , Toast.LENGTH_LONG).show();
                }
            }
            
            //sd卡的存储方式,留意:Environment ,获取sdcard的状态
            public  void sdcard(View v) throws IOException{
                String es = Environment.getExternalStorageState();
                if(es.equals(Environment.MEDIA_MOUNTED)){
                    File dir=Environment.getExternalStorageDirectory();
                    FileWriter fw= new FileWriter(new File(dir,"a.txt"));
                    fw.write("啦啦啦,就快忘记了, 判断的时候要判断是否当前有此文件,如果没有就创建");
                    fw.close();
                    
                    Toast.makeText(this,"存储成功" , Toast.LENGTH_LONG).show();
                }else{
                    Toast.makeText(this,"存储失败咯!!!!" , Toast.LENGTH_LONG).show();
                }
            }
            //sp的系统存储,方法较为简单.留意:获得sp,添加,查询
            public void sp(View v){
                //获取
                SharedPreferences sp = getSharedPreferences("a.txt", MODE_PRIVATE);
                //保存,添值
                sp.edit().putString("name", "未来").commit();
                sp.edit().putString("age", "18岁");
                //获取-一个默认值(如其中没有除默认值意外的数据,则显示的就是默认值)
                String s1 = sp.getString("name", "只是一个默认值");
                //通过Toast来查看数据
                Toast.makeText(this,"默认值!!!!" , Toast.LENGTH_LONG).show();
                Toast.makeText(this,"这是我们存储的:"+s1, Toast.LENGTH_LONG).show();
                //起初name中的数据, 这里切记要 "提交",也就是commit
                sp.edit().remove("name").commit();
                //也可以通过clear清除
                sp.edit().clear();
                //通过Toast来查看数据
                Toast.makeText(this,"已经被完美的清除!" , Toast.LENGTH_LONG).show();
            }
               //sql的数据库存储,   
            public void sql(View v){
                //数据库实例化
                SQLite sqLite = new SQLite(this, "user.db", null, 1);
                SQLiteDatabase writableDatabase = sqLite.getWritableDatabase();
                
                ContentValues values = new ContentValues();
                values.put("c_name","现在");
                
                long insert = writableDatabase.insert("t_user", null, values);
                Toast.makeText(this, "id="+insert, Toast.LENGTH_SHORT).show();
                
                Cursor cursor = writableDatabase.query("t_user", new String[]{"c_name","id"}, "id>?", new String[]{"0"}, null, null, null);
                while(cursor.moveToNext()){
                    String name=cursor.getColumnName(0);
                    int id=cursor.getInt(1);
                    Toast.makeText(this, "name="+name+"/id="+id, Toast.LENGTH_SHORT).show();
                }
                cursor.close();
                writableDatabase.close();
            }
            

}


数据库的代码:

package com.example.storage;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class SQLite extends SQLiteOpenHelper {

    public SQLite(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql="create table t_user(id integer primary key,c_name varchar(20))";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

    }

}



0 0
原创粉丝点击