Android数据存储和访问

来源:互联网 发布:乐高编程软件手机 编辑:程序博客网 时间:2024/05/21 10:16
一.知识了解:
1.什么是数据流?

数据流(data stream)最初是通信领域使用的概念,代表传输中所使用的信息的数字编码信号序列。然而,我们所提到的数据流概念与此不同。这个概念最初在1998年由Henzinger在文献87中提出,他将数据流定义为“只能以事先规定好的顺序被读取一次的数据的一个序列”。数据流分为输入流(InputStream)和输出流(OutputStream)两类。
2.什么是输入流?
在Java中,能够读取一个字节序列的对象就称作一个输入流。输入流只能读不能写,可从键盘或文件中获得数据。
3.什么是输出流?
输出流可向显示器、打印机或文件中传输数据。

二.书写代码:

1.FileService.java:

package com.example.fileoperatedemo.service;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

import android.content.Context;

public class FileService {
private Context context;
private String fileName;
public FileService(Context context,String fileName){
this.context=context;
this.fileName=fileName;
}
public boolean save(String content){
BufferedWriter bw=null;// 缓冲区声明
boolean isSaveSucceed=false;
try {
FileOutputStream fos=context.openFileOutput(fileName,context.MODE_PRIVATE);
OutputStreamWriter writer=new OutputStreamWriter(fos);
bw=new BufferedWriter(writer);
bw.write(content);
isSaveSucceed=true;

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(bw!=null)
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return isSaveSucceed;
}

public String read(){
String line;
StringBuilder sb=new StringBuilder();
BufferedReader br=null;
try {
FileInputStream fis=context.openFileInput(fileName);
br=new BufferedReader(new InputStreamReader(fis));
while((line=br.readLine())!=null){
sb.append(line);
}

} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close();
} catch (IOException e) {

e.printStackTrace();
}
}
}
return sb.toString();
}

}

2.写测试类,即FileServiceTest.java:

package com.example.fileoperatedemo.test;


import com.example.fileoperatedemo.service.FileService;


import android.test.AndroidTestCase;


public class FileServieTest extends AndroidTestCase {
    public void testSave(){
    FileService fileService=new FileService(getContext(), "test.txt");
    fileService.save("hello world");
    }
}

3.进行配置清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.fileoperatedemo"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.fileoperatedemo.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="android.test.runner"/>
</application>

<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.fileoperatedemo" >
</instrumentation>

4.进行Android测试:


5.测试结果,成功:


6.当测试结果成功后,书写控制层代码:

package com.example.fileoperatedemo;

import com.example.fileoperatedemo.service.FileService;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
//控制层
public class MainActivity extends Activity {
private EditText etContent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initViews();
}

private void initViews() {
etContent=(EditText) findViewById(R.id.etContent);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


public void save(View view){
//从V获取数据
String content=etContent.getText().toString();
//调用模型层M进行处理
FileService fileService=new FileService(this, "data.txt");
boolean isSavesucceed=fileService.save(content);
if(isSavesucceed){
Toast.makeText(this, "恭喜你,保存成功了", Toast.LENGTH_LONG).show();
}

}
}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕期间喝了酒怎么办 一岁宝宝多动怎么办 3岁前儿童多动症怎么办 好动症的孩子该怎么办 18个月宝宝腹泻怎么办 8个月小孩发烧怎么办 八个月大宝宝发烧怎么办 8个月宝宝拉稀水怎么办 八个月宝宝38度怎么办 8个月的宝宝发烧怎么办 八个月大的宝宝拉肚子怎么办 9孩子上课坐不住怎么办 3岁宝宝太皮怎么办 4岁的宝宝多动症怎么办 小孩好动注意力不集中怎么办 乐扣加热变形了怎么办 3岁宝宝咳嗽厉害怎么办 六个月婴儿呕奶怎么办 刚出生婴儿呕奶怎么办 宝宝拉颗粒便便怎么办 奶水不够宝宝又不吃奶粉怎么办 一岁突然不吃饭怎么办 母乳不够吃宝宝不吃奶粉怎么办 八个月不吃辅食怎么办 孩子长得太快怎么办 反复发烧到39度怎么办 儿童发烧到39度怎么办 7岁儿童发烧40度怎么办 7岁反复发烧39度怎么办 宝宝烧到39.5度怎么办 3岁儿童发烧39度怎么办 孩子发高烧怎么办39度5 3岁宝宝不吃水果怎么办 2岁宝宝不吃水果怎么办 4岁宝宝不吃水果怎么办 过早竖抱婴儿了怎么办 3个月宝宝认生怎么办 10天婴儿不拉屎怎么办 3个月宝宝不吃奶粉怎么办 婴儿吃青菜吃多怎么办 2月宝宝消化不好怎么办