文件存储

写数据

String data = "Data ti save";

FileOutputStream out =null;

BufferedWriter writer =null;

try{

out = openFileOutput("data",Context.MODE_PRIVATE)//MODE_APPEND有同名文件时追加,PRIVATE是默认,有同名文件时覆盖

writer = new BufferedWriter(new OutpurStreamWriter(out));

writer.writer(data);

}

catch(IOexception e)

{

e.printStackTrace();

}

finally

{

try{

if(writer!=null)

{

writer.close();

}

catch(IOException e)

{

e.printStackTrace();

}

}

}

  • 在右侧的Device File Explorer 查看存储的文件
  • 存放路径/data/data/com..../files/

读数据

P201

SharedPreferences存储

  • 存放路径 /data/data/com.../shared_prefs

一、Context类中的getSharedPreferences()方法

  1. getSharedPreferences("file_name","MODE_PRIVATE")//第二个参数只有一种

二、Activity类中的getPreferences(MODE_PRIVATE)//文件名默认我活动类名

三、PreferenceManager类中的getDefaultSharedPreferences()方法

具体方法

SharePreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();

editor.putString("name","Tom");

editor.putInt("age",28);

editor.apply();//提交

ShareOreferences pref = getSharedPreferences("data",MODE_PRIVATE);

String name=pref.getString("name","")//若找不到值 就用方法传进来的值代替

SQLite数据库

  • 存储位置 /data/data/com.example.administrator.myapplication/databases

  • SQLiteOpenHelper 两个实例方法

  • getReadableDatabase()//都可以对可读写的数据库进行读写

  • getWriteableDatabase()//不可写入的时候 使用此方法报错

构造方法

SQLiteOpwnHelper(Context,"database_name",null,"1"//database_version);//当最后一个参数大于上一个版本时 会执行onUpgrade方法

package com.example.administrator.myapplication;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.widget.Toast;

public class MyDatabaseHelper extends SQLiteOpenHelper {

public static final String CREATE_BOOK=

"create table Book(" +

"id integer primary key autoincrement," +

"author text," +

"pages integer," +

"name text)";

private Context mContext;

public MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version)

{

super(context,name,factory,version);

mContext=context;

}

  1. @Override
  2. public void onCreate(SQLiteDatabase sqLiteDatabase) {
  3. sqLiteDatabase.execSQL(CREATE_BOOK);//执行建表语句
  4. Toast.makeText(mContext,"yes",Toast.LENGTH_LONG).show();
  5. }
  6. @Override
  7. public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
  8. db.execSQL("drop table if exists Book");
  9. db.execSQL("drop table if exists Category");
  10. onCreate(db);//升级数据库
  11. }

}

更新

SQLiteDatabase db = SQLiteOpenHelper.getWritableDatabase();

ContentValues values = new ContentValues();

values.put("key","value");

db.insert("table_name",null,values);//插入

db.update("table_name",values,"name=?",new String[] {"The Da "}) //?是个占位符,The Da 会替换? 意思就是更新 名为 The Da 的内容

db.delete("table_name","pages>?",new String[] {"500"})//删除大于500行的数据

values,clear();

adb shell

  • sqlite3 databasename.db
  • .table 查看有哪些表
  • .schema 建表语句

查询

使用query()方法七个参数

SQLiteDatabase db = SQLiteOpenHelper.getWritableDatabase();

Cursor cursor = db.query("Bool",null,null,null,null,null,null,null);

if(cursor.moveToFirst())

{

do{

String name=cursor.getString(cursor.getColumnIndex("name"));

}while(cursor.moveToNext());

}

cursor.close();

使用sql方式

  1. db.execSQL("insert into Book (name,author,pages,price) values(?,?,?,?),new String[] {"sfs","sfsf",“23.5”,”454"}");
  2. db.rawQuery("select * from Book",null);

LitePal (未完待续)

Android Studio 学习(四) 数据库的更多相关文章

  1. Android Studio 学习 - 基本控件的使用;Intent初学

    Android Studio学习第三天. 今天主要学习 1. RadioButton.CheckBox.RatingBar.SeekBar等基础控件的使用. 结合Delphi中相类似的控件,在这些基本 ...

  2. Android JNI学习(四)——JNI的常用方法的中文API

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  3. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  4. Android Studio 学习笔记(四):Adapter和RecyclerView说明

    在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解. MV ...

  5. Android Studio学习笔记

    转:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1 背景 相信大家对Android Studio已经不陌生了,An ...

  6. Android Studio 学习 - HelloWorld

    今天是学习Android Studio的第2天,加油! 1. 首先要记录下使用Android Studio的一个代码自动完成的功能.平常基本上用Delphi,乍一换工具,各种不习惯,或者说不熟悉.按照 ...

  7. Android Studio 学习 - 程序安装

    痛定思痛,从今天开始专心学习AndriodStudio.希望以此为契机,把Java学扎实.更希望自己能坚持下去,不要半途而废. 记录一些日常的工作以及碰到的问题,权当勉励自己.荀子曰:吾尝终日而思矣, ...

  8. android studio如何查看数据库文件

    android studio查看数据库文件有两种方式: 1.SQLSCOUT 优点:集成在as中,功能强大. 缺点:收费,破解麻烦. 2.Android Device Monitor 中的File E ...

  9. android studio 学习之一 安装和基本使用

    一.简介 Android Studio 是一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开 ...

  10. 在 Android Studio 上调试数据库 ( SQLite ) (转)

    转自:http://c.colabug.com/thread-1781696-1-1.html 以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看.现在我 ...

随机推荐

  1. .net framework 4.5 +steeltoe+ springcloud(二) 实现服务发现与调用功能

    首先,写一个简单的可被调用的服务注册到服务中心,我们这命名为java-service,用的是IDEA创建一个spring boot项目,选择spring client类型. 修改application ...

  2. eclipse运行spark程序时日志颜色为黑色的解决办法

    自从开始学习spark计算框架以来,我们老师教的是local模式下用eclipse运行spark程序,然后我在运行spark程序时,发现控制台的日志颜色总是显示为黑色,哇,作为程序猿总有一种强迫症,发 ...

  3. Python学习笔记【第十二篇】:Python异常处理

    什么是异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 错误类型分为两种:语法错误和业务逻辑错. 异常的类型 AttributeError 试图访问一个对象没有的树形,比如 ...

  4. 在react中使用less(官方做法)

    概述 在用create-react-app搭建react app的时候,原生并不支持less,只支持css.不过create-react-app官方给了一种方法使用less,我觉得很有用,记录下来,供 ...

  5. 金九银十,史上最强 Java 面试题整理。

    以下会重新整理所有 Java 系列面试题答案.及各大互联网公司的面试经验,会从以下几个方面汇总,本文会长期更新. Java 面试篇 史上最全 Java 面试题,带全部答案 史上最全 69 道 Spri ...

  6. [原创]K8Cscan插件之Cisco思科设备扫描(IP、设备型号、主机名、Boot、硬件版本)

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  7. Google Chrome 书签导出并生成 MHTML 文件

    目的 因为某些原因需要将存放在 Google Chrome 内的书签导出到本地,所幸 Google Chrome 提供了导出书签的功能. 分析 首先在 Google Chrome 浏览器当中输入 ch ...

  8. C++版 - 剑指offer 面试题5:从尾到头打印链表 题解

    面试题5:从尾到头打印链表 提交网址: http://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tq ...

  9. 【EF6学习笔记】(十一)实施继承

    上篇链接:EF学习笔记(十) 处理并发 本篇原文链接:Implementing Inheritance 面向对象的世界里,继承可以很好的重用代码.在本章就对Instructor和Student两个类进 ...

  10. vc-mysql-sniffer统计MySQL的SQL分布

    有时候我们需要统计线上的SQL执行情况,比如想知道哪条SQL执行最频繁,我们可以开启general_log,然后进行统计,但是general_log开启非常损耗性能,那么我们可以使用vc-mysql- ...