Android数据存储方式(一)文件读写操作

                           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

<?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>

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();
}


    
    
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值