android之存储数据的四大方式

Posted 王俊凯夫人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android之存储数据的四大方式相关的知识,希望对你有一定的参考价值。

下面详细解释这四大方式的特点

第一种:文件存储数据

核心原理: Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式。具体有以下值可选:

             MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可   以使用Context.MODE_APPEND

             MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

             MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;

             MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

 除此之外,Context还提供了如下几个重要的方法:

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

             File getFilesDir():获取该应用程序的数据文件夹得绝对路径

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

实例:

核心代码:

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名"
        android:id="@+id/name"/>
    <EditText 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码"
        android:id="@+id/pwd"
        />
    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="保存"
            android:onClick="mybtn1"/>
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="读取"
            android:onClick="mybtn2"/>
    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" 
        android:textSize="35sp"
        android:id="@+id/tv"/>

</LinearLayout>

activity中:

filename:

private String filename="info.txt";

保存:

public void mybtn1(View view) {
		// TODO Auto-generated method stub
		String Name=name.getText().toString();
		String Pwd=pwd.getText().toString();
		try {
			//字节文件输出流是用于将数据写入到File
			FileOutputStream fos=openFileOutput(filename, MODE_APPEND);
			PrintWriter out=new PrintWriter(fos);
			out.println(Name);
			out.println(Pwd);
			out.flush();
			try {
				fos.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			out.close();
			name.setText("");
			pwd.setText("");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
读取:

以上是关于android之存储数据的四大方式的主要内容,如果未能解决你的问题,请参考以下文章

Android之四大组件六大布局五大存储

Android四大组件之BroadcastReceiver

Android之四大组件六大布局五大存储 总结

Android之四大组件六大布局五大存储

Android之ContentProvider使用

Android四大组件之service