Android数据存储方式(一)文件读写操作
步骤:
(1)建立一个工程"文件读写"
(2)编写布局activity_main.xml
(3)编写布局open.xml
(4)编写MainActivity.java
功能:将写入的文字装入文件.txt中,然后可以读出来。
外面貌似在下雨,爽啊啊~~~最喜欢下雨时,外面雷声隆隆,房间安安静静地...当然是安安静静地写代码....
main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000"
tools:context="com.xuxin.test.filewriteread.MainActivity"
tools:ignore="MergeRootFrame" >
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#C0C0C0"
android:textColor="#009900"
android:hint="请输入"
/>
<Button
android:id="@+id/bt"
android:layout_height="50px"
android:layout_width="wrap_content"
android:text="保存"
android:textColor="#009900"
android:layout_gravity="right"/>
</LinearLayout>
open.xml
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000"
tools:context="com.xuxin.test.filewriteread.MainActivity"
tools:ignore="MergeRootFrame" >
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#C0C0C0"
android:textColor="#009900"
android:hint="请输入"
/>
<Button
android:id="@+id/bt"
android:layout_height="50px"
android:layout_width="wrap_content"
android:text="保存"
android:textColor="#009900"
android:layout_gravity="right"/>
</LinearLayout>
open.xml
<?xml version="1.0" encoding = "utf-8"?>
<LinearLayout
android:id="@+id/openlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/tv_open_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#009900"></TextView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/bt_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开"/>
<Button
android:id="@+id/bt_clean"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="清空"
android:layout_toRightOf="@id/bt_open"/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/openlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#000000"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/tv_open_show"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#009900"></TextView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/bt_open"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开"/>
<Button
android:id="@+id/bt_clean"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="清空"
android:layout_toRightOf="@id/bt_open"/>
</RelativeLayout>
</LinearLayout>
MainActivity.java
package com.xuxin.test.filewriteread;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;
import android.provider.ContactsContract.CommonDataKinds.Note;
public class MainActivity extends ActionBarActivity implements OnClickListener {
EditText et;
Button bt;
private EditText inputArt;
private Button saveButton;
private String Text_of_input;
private OutputStream os;
private TextView showmyText;
private Button openTxt,cleanTxt;
private String Text_of_output;
private InputStream is;
private byte[] b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UIinit("main");
Logic("main");
}
/*
* 菜单栏选择操作(每次选择菜单后,对界面进行初始化和事件逻辑方法)
* */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 1:
setLayoutShow(R.layout.activity_main);
UIinit("main");
Logic("main");
NoteDebug("编辑文件Layout");
break;
case 2:
setLayoutShow(R.layout.open);
UIinit("open");
Logic("open");
NoteDebug("打开文件Layout");
break;
case 3:
finish();
NoteDebug("Byebye");
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void setLayoutShow(int layoutID) {
// TODO Auto-generated method stub
setContentView(layoutID);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 1, 1, "Edit").setIcon(R.drawable.ic_launcher);
menu.add(0, 2, 2, "Open").setIcon(R.drawable.ic_launcher);
menu.add(0, 3, 3, "Exit").setIcon(R.drawable.ic_launcher);
return super.onCreateOptionsMenu(menu);
}
/**
添加事件逻辑方法
*
* */
private void Logic(String string) {
// TODO Auto-generated method stub
if(string.equals("main")){
saveButton.setOnClickListener(this);
} else if(string.equals("open")) {
openTxt.setOnClickListener(this);
cleanTxt.setOnClickListener(this);
}
}
/**
初始化UI元素方法
*
* */
private void UIinit(String mainROopen) {
// TODO Auto-generated method stub
if(mainROopen.equals("main")){
inputArt = (EditText) findViewById(R.id.et);
saveButton= (Button) findViewById(R.id.bt);
}
else if(mainROopen.equals("open")){
showmyText= (TextView) findViewById(R.id.tv_open_show);
openTxt = (Button) findViewById(R.id.bt_open);
cleanTxt = (Button) findViewById(R.id.bt_clean);
}
}
/**
按钮操作处理
*
*/
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bt:{
NoteDebug("文件保存");
Text_of_input = inputArt.getText().toString();
try {
os = this.openFileOutput("txtME", MODE_PRIVATE);
os.write(Text_of_input.getBytes());
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
NoteDebug("文件关闭失败"+e1);;
}
catch (IOException e2) {
// TODO Auto-generated catch block
NoteDebug("文件写入错误"+e2);;
}
finally{
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
NoteDebug("文件关闭失败"+e);
}
}
inputArt.setText("");
}
break;
case R.id.bt_open:{
NoteDebug("文件打开");
try {
is = this.openFileInput("txtME");
b = new byte[1024];
int length = is.read(b);
Text_of_output = new String(b);
setTitle("文件字数:"+length);
showmyText.setText(Text_of_output);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
NoteDebug("文件打开失败"+e);
} catch (IOException e) {
// TODO Auto-generated catch block
NoteDebug("文件读取失败"+e);
}
finally{
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
NoteDebug("文件关闭失败"+e);
}
}
}break;
case R.id.bt_clean:{
showmyText.setText("");
NoteDebug("清空");
}break;
default:
break;
}
}
private void NoteDebug(String showString) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), showString, Toast.LENGTH_SHORT).show();
}
}
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.os.Build;
import android.provider.ContactsContract.CommonDataKinds.Note;
public class MainActivity extends ActionBarActivity implements OnClickListener {
EditText et;
Button bt;
private EditText inputArt;
private Button saveButton;
private String Text_of_input;
private OutputStream os;
private TextView showmyText;
private Button openTxt,cleanTxt;
private String Text_of_output;
private InputStream is;
private byte[] b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
UIinit("main");
Logic("main");
}
/*
* 菜单栏选择操作(每次选择菜单后,对界面进行初始化和事件逻辑方法)
* */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case 1:
setLayoutShow(R.layout.activity_main);
UIinit("main");
Logic("main");
NoteDebug("编辑文件Layout");
break;
case 2:
setLayoutShow(R.layout.open);
UIinit("open");
Logic("open");
NoteDebug("打开文件Layout");
break;
case 3:
finish();
NoteDebug("Byebye");
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void setLayoutShow(int layoutID) {
// TODO Auto-generated method stub
setContentView(layoutID);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 1, 1, "Edit").setIcon(R.drawable.ic_launcher);
menu.add(0, 2, 2, "Open").setIcon(R.drawable.ic_launcher);
menu.add(0, 3, 3, "Exit").setIcon(R.drawable.ic_launcher);
return super.onCreateOptionsMenu(menu);
}
/**
添加事件逻辑方法
*
* */
private void Logic(String string) {
// TODO Auto-generated method stub
if(string.equals("main")){
saveButton.setOnClickListener(this);
} else if(string.equals("open")) {
openTxt.setOnClickListener(this);
cleanTxt.setOnClickListener(this);
}
}
/**
初始化UI元素方法
*
* */
private void UIinit(String mainROopen) {
// TODO Auto-generated method stub
if(mainROopen.equals("main")){
inputArt = (EditText) findViewById(R.id.et);
saveButton= (Button) findViewById(R.id.bt);
}
else if(mainROopen.equals("open")){
showmyText= (TextView) findViewById(R.id.tv_open_show);
openTxt = (Button) findViewById(R.id.bt_open);
cleanTxt = (Button) findViewById(R.id.bt_clean);
}
}
/**
按钮操作处理
*
*/
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.bt:{
NoteDebug("文件保存");
Text_of_input = inputArt.getText().toString();
try {
os = this.openFileOutput("txtME", MODE_PRIVATE);
os.write(Text_of_input.getBytes());
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
NoteDebug("文件关闭失败"+e1);;
}
catch (IOException e2) {
// TODO Auto-generated catch block
NoteDebug("文件写入错误"+e2);;
}
finally{
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
NoteDebug("文件关闭失败"+e);
}
}
inputArt.setText("");
}
break;
case R.id.bt_open:{
NoteDebug("文件打开");
try {
is = this.openFileInput("txtME");
b = new byte[1024];
int length = is.read(b);
Text_of_output = new String(b);
setTitle("文件字数:"+length);
showmyText.setText(Text_of_output);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
NoteDebug("文件打开失败"+e);
} catch (IOException e) {
// TODO Auto-generated catch block
NoteDebug("文件读取失败"+e);
}
finally{
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
NoteDebug("文件关闭失败"+e);
}
}
}break;
case R.id.bt_clean:{
showmyText.setText("");
NoteDebug("清空");
}break;
default:
break;
}
}
private void NoteDebug(String showString) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(), showString, Toast.LENGTH_SHORT).show();
}
}