数据存储四
来源:互联网 发布:mysql 存储过程 语法 编辑:程序博客网 时间:2024/06/14 23:54
在数据存储一、二、三中主要了解到了在android项目中把数据保存到SQLite数据库中。在数据存储四来了解在android项目中把数据保存到文件中,首先来了解两个方法:
1、openFileOutput(String name,int mode)name:文件的名称,不能包含分隔符“/”,如果文件不能保存在,Android会自动创建它。创建的文件保存在/data/data/<package_name>/files目录下。
2、openFileInput(String name)。
在openFIleOutput方法里面的保存的模式mode:
.MODE_APPEND 如果文件中已经存在内容,则在内容末尾追加
.MODE_PRIVATE 文件仅能被该程序访问
.MODE_WORLD_PEADABLE 文件允许被其它应用程序读
.MODE_WORLD_WRITEABLE 文件应许被其它程序写
MODE_WORLD_READABLE + MODE_WORLD_WRITEABLE
下面是一个代码实例:
MainActivity.java代码:
package com.cooguo.file.activity;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import com.cooguo.file.service.FileService;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button btnSave = null;
private Button btnRead = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnSave = (Button)findViewById(R.id.btnSave);
btnRead = (Button)findViewById(R.id.btnRead);
btnSave.setOnClickListener(listener);
btnRead.setOnClickListener(listener);
}
private OnClickListener listener = new OnClickListener(){
@Override
public void onClick(View view) {
FileService service = new FileService();
EditText editTitle = (EditText)findViewById(R.id.fileEditTitle);
EditText editContent = (EditText)findViewById(R.id.fileEditContent);
TextView textResult = (TextView)findViewById(R.id.textResult);
switch (view.getId()) {
case R.id.btnSave:
try {
OutputStream outStream = MainActivity.this.openFileOutput(editTitle.getText().toString(),Context.MODE_PRIVATE);
service.save(outStream, editContent.getText().toString());
Toast.makeText(MainActivity.this, "保存成功!", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.btnRead:
try {
InputStream inputStream = MainActivity.this.openFileInput(editTitle.getText().toString());
String content = service.read(inputStream);
textResult.setText(content);
} catch (IOException e) {
e.printStackTrace();
}
break;
}
}
};
}
FileService.java代码:
package com.cooguo.file.service;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class FileService {
/**
* 保存
* @param outStream
* @param content
* @throws IOException
*/
public void save(OutputStream outStream ,String content) throws IOException{
outStream.write(content.getBytes());
outStream.close();
}
public String read(InputStream inputStream) throws IOException{
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len=inputStream.read(buffer))!=-1) {
outputStream.write(buffer, 0, len);
}
byte[] data = outputStream.toByteArray();
outputStream.close();
inputStream.close();
return new String(data);
}
}
main.xml配置文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/fileTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/fileEditTitle"
android:text="文件名:"
/>
<EditText
android:id="@+id/fileEditTitle"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/fileTitle"
android:text="kaifa.txt"
/>
<TextView
android:id="@+id/fileContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/fileEditContent"
android:text="内容:"
/>
<EditText
android:layout_width="250dp"
android:layout_height="250dp"
android:id="@+id/fileEditContent"
android:layout_below="@+id/fileEditTitle"
android:layout_alignLeft="@+id/fileEditTitle">
</EditText>
<Button
android:id="@+id/btnSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"
android:layout_below="@+id/fileEditContent"
android:layout_toRightOf="@+id/fileTitle"
/>
<Button
android:id="@+id/btnRead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="读取"
android:layout_below="@+id/fileEditContent"
android:layout_toRightOf="@+id/btnSave"
android:layout_marginLeft="14dp"
/>
<TextView
android:text="显示内容"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textResult"
android:layout_below="@+id/btnRead"
android:layout_alignRight="@+id/btnRead"
android:layout_marginTop="14dp"/>
</RelativeLayout>
用心体会,学以致用。
- 数据存储四
- 数据存储(四)
- Android 入门四(数据存储)
- 【四】Android 数据存储-SQLite
- 数据存储之(四):文件存储
- android开发(四):数据存储
- 【Android】数据的四种存储方式
- IOS 数据存储的四种常用
- cocos2d数据存储的四种形式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- Android数据的四种存储方式
- chapter 5.1: object model介绍
- Median of two sorted arrays
- web.config中的<globalization >标签在将几个不同服务器上的网闸内容以统一面貌集成在自己网站上时的要考虑的问题
- Ubuntu安装insight6.8
- chapter 5.2: UMDF对象模型的实现
- 数据存储四
- 软件形式化方法概述
- 一些包名
- 记录的一些缩写,名词
- poj1960 二分法 数论
- Shell——bash 快捷键汇总
- 【学习笔记】hash表和hash函数
- JSTL中遇到的According to TLD or attribute……异常
- Flex柱状图(包含线性图)自定义显示tooltip