美文网首页
Android存储方式之文件存储数据

Android存储方式之文件存储数据

作者: 梦想追求者 | 来源:发表于2017-06-04 00:00 被阅读0次
半边清醒,半边醉。

文件存储数据是指在Android系统中,直接把数据以文件的形式存储在设备中。Android系统提供了openFileOutput(String name,int mode):第一个参数是用于指定文件名称,第二个参数是用于指定文件存储的方式。如果文件不存在,Android系统会为我们自动的创建它,创建的文件被保存在/data/data/<package name>/files目录下的。

第二个参数也就是文件的打开方式有:

MODE_PRIVATE:默认打开方式,表示文件是私有数据,在默认模式下,只能被本身的应用访问,在默认模式下,新写入内容会覆盖原文件的内容。

MODE_APPEND:该模式会先检查数据文件是否存在,如果存在就在该数据文件内容基础上追加新的内容,否则就创建新数据文件。

MODE_WORLD_READABLE:该模式下数据文件可以其他应用读取。

MODE_WORLD_WRITEABLE:该模式下数据文件可以被其他应用读取与写入。

Context提供的几个重要方法:

getDir(String name,int mode):在应用程序的数据文件下获取或者创建name对应的子目录。

File getFilesDir:获取应用程序数据文件的绝对路径。

String[] fileList():返回应用程序数据文件夹的全部文件。

下面附带一个简单的栗子:

先看布局:

基础布局

代码:

private EditText keyword;

private Button set_keyword;

private Button get_keyword;

private Button getDir;

private Button getFilesDir;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

keyword= (EditText) findViewById(R.id.keyword);

set_keyword= (Button) findViewById(R.id.set_keyword);

get_keyword= (Button) findViewById(R.id.get_keyword);

set_keyword.setOnClickListener(this);

get_keyword.setOnClickListener(this);

getDir= (Button) findViewById(R.id.getDir);

getFilesDir= (Button) findViewById(R.id.getFilesDir);

getDir.setOnClickListener(this);

getFilesDir.setOnClickListener(this);

}

@Override

public voidonClick(View v) {

switch(v.getId()){

caseR.id.set_keyword:

writeKeyworld(keyword.getText().toString());

Toast.makeText(MainActivity.this,"文件存储成功!",Toast.LENGTH_SHORT).show();

Toast.makeText(MainActivity.this,"文件的路径:"+getFilesDir(),Toast.LENGTH_SHORT).show();

break;

caseR.id.get_keyword:

Toast.makeText(MainActivity.this,readKeyworld().toString()+"",Toast.LENGTH_SHORT).show();

break;

caseR.id.getDir:

//在数据文件的目录下获取或者创建HelloAndroid的子目录(在HellAndroid目录不存在的时候)

Toast.makeText(MainActivity.this,"getDir:"+MainActivity.this.getDir("HelloAndroids", Context.MODE_PRIVATE),Toast.LENGTH_SHORT).show();

break;

caseR.id.getFilesDir:

//数据文件绝对路径

Toast.makeText(MainActivity.this,"getFilesDir:"+MainActivity.this.getFilesDir,Toast.LENGTH_SHORT).show();

break;

}

}

//使用openFileOutput指定打开指定文件,并指定写入模式

private voidwriteKeyworld(String msg) {

if(msg==""){

return;

}

try{

//通过openFileOutput拿到io流的FileOutputString对象

FileOutputStream fos=this.openFileOutput("message.txt",MODE_APPEND);

fos.write(msg.getBytes());

fos.close();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}

//使用openFileInput打开指定文件

privateString readKeyworld() {

String data="";

try{

FileInputStream fis=this.openFileInput("message.txt");

byte[] buffer=new byte[1024];

inthasRead=0;

StringBuilder sb=newStringBuilder();

while((hasRead=fis.read(buffer))!=-1){

sb.append(newString(buffer,0,hasRead));

}

data=sb.toString();

fis.close();

}catch(FileNotFoundException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

returndata;

}

运行结果:

点击获取密码 调用getDIR方法,可以在DDMS中查看被创建的子目录 调用getFilesDir()方法返回绝对路径

上面这个栗子只包括android文件存储的使用内置内存存储。那么问题来,怎么把数据存储在sd卡里边呢?下片博文说吧。

相关文章

  • day07

    Android的存储方式 使用SharedPreferences存储数据 文件存储数据 SQLite数据库存储数据...

  • SharedPreferences存储数据

    Android的存储方式 使用SharedPreferences存储数据文件存储数据SQLite数据库存储数据使用...

  • SharedPreference与文件存储

    Android常用数据存储方式有SharedPreferences存储数据(虽然还是属于内部存储)、文件存储(内部...

  • SharePreferences 分析及正确使用姿势

    1.Android 常见数据存储方式 在 Android 中,常用数据存储方式通常有以下几类: 文件存储:将数据存...

  • Android中的数据存储

    1. Android中有哪些数据存储方式? Android中的数据存储主要有以下5种方式: File:文件存储,通...

  • 性能优化-存储优化

    存储优化 存储方式 Android系统提供4中基本的数据存储方式,分别是SharedPreference、文件存储...

  • Android数据存储与访问

    Android数据存储与访问 Android数据存储与访问方式中的一个——文件存储与读写,当然除了这种方式外,我们...

  • Android五种数据存储方式

    android的五种数据存储方式 文件存储 SharedPreferences SQLite数据库存储 Conte...

  • Android存储方式

    Android系统提供4种基本的数据存储方式,分别是SharedPreferences存储方式,文件存储方式,SQ...

  • Android存储方式之文件存储数据

    文件存储数据是指在Android系统中,直接把数据以文件的形式存储在设备中。Android系统提供了openFil...

网友评论

      本文标题:Android存储方式之文件存储数据

      本文链接:https://www.haomeiwen.com/subject/xvjyfxtx.html