Android数据的存储方式

来源:互联网 发布:播放ppt需要网络吗 编辑:程序博客网 时间:2024/06/06 21:38

数据存储是应用程序最基本的问题,任何企业系统、应用软件都必须解决这一问题,数据存储必须以某种方式积存,不能丢失,并且能够有效。android系统一共提供了5中存储数据的方式

SharedPareference,Internal Storage,Network Connection,SQLite Databases,其中Internal Storage,External Storage统称为文件存储。由于android系统数据基本是私有的,都是存放在data/data/程序包名的目录下,所以要实现文件共享就要使用Content Provider.

下面是文件读取的范例

首先在默认的mainActivity.xml文件中修改一下布局如下图:


xml的代码:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.fileread.MainActivity" >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="52dp"
        android:text="TextView" />


</RelativeLayout>

在java文件中的代码如下:

package com.example.fileread;


import java.io.FileInputStream;
import java.io.FileOutputStream;




import android.app.Activity;
import android.content.Context;
import android.os.Bundle;


import android.widget.TextView;


public class MainActivity extends Activity {
TextView tv=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//
try {
save("myfile","学号:20150001;姓名:JAKE;年龄:20");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
tv=(TextView)findViewById(R.id.textView1);
try {
tv.setText(read("myfile"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}





//写入文件内容
public void save(String filename,String content) throws Exception{
//以私有模式建立文件
FileOutputStream fos=openFileOutput(filename, Context.MODE_PRIVATE);
//项文件写入数据,将字符串转化为字节
fos.write(content.getBytes());
//将所有剩余的数据写入文件

fos.flush();
//关闭输出流

fos.close();

}
//读取文件内容
public String read(String filename) throws Exception{
//创建输入流
FileInputStream fis=openFileInput(filename);
//以文件的大小建立数组
byte[] input =new byte[fis.available()];//数组
//调用read方法读取数据中的字节
while(fis.read(input)!=-1){}
//关闭输入流

fis.close();
return new String(input) ;
}
}

完成上述两段代码,即可实现文件的读取操作。

原创粉丝点击