android-小白请教高手问题,今天看了持久化技术的关于一个从文件中读取数据的问题

问题描述

小白请教高手问题,今天看了持久化技术的关于一个从文件中读取数据的问题

想要完成一个功能,向EditText里输入数据,数据存放在一个文件夹后,然后按下back键,再重新启动这个程序,再从这个文件里读取数据,出现的是这个数据已经填充在EditText里
下面是代码

MainActivity

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

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

EditText text;
String content;
FileOutputStream out=null;
BufferedWriter writer=null;
BufferedReader reader=null;
StringBuilder builder;
String str;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text=(EditText)findViewById(R.id.text);
str=load();
if(!TextUtils.isEmpty(str)){
text.setText(str);
text.setSelection(str.length());
Toast.makeText(getApplicationContext(), "You have succeed!!!",Toast.LENGTH_LONG).show();
}
}
protected void onDestroy() {
super.onDestroy();
content=text.getText().toString();
save(content);
}

public void save(String content) {
    try{
        FileOutputStream out = openFileOutput("data",Context.MODE_PRIVATE);
        writer=new BufferedWriter(new OutputStreamWriter(out));
        writer.write(content);
    }catch(IOException e){
        e.printStackTrace();
    }finally{
        try{
            if(writer!=null){
                writer.close();
            }
        }catch(IOException e){
            e.printStackTrace();
        }

    }
}

public String load(){

try{
    FileInputStream in=openFileInput("data");
    reader=new BufferedReader(new InputStreamReader(in));
    StringBuilder builder= new StringBuilder();
    String line;
    if((line=reader.readLine())!=null){
        builder.append(line);
    }
}catch(IOException e){
    e.printStackTrace();
}finally{
    if(reader!=null){
        try{
            reader.close();
        }catch(final IOException e){
            e.printStackTrace();
        }
    }
}
return builder.toString();

}

}

activity_main
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.IWIN.filepersistencetext.MainActivity" >

<EditText
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:hint="type something..." />

解决方案

http://blog.sina.com.cn/s/blog_90cdca4c01012eo5.html

时间: 2024-12-03 16:24:14

android-小白请教高手问题,今天看了持久化技术的关于一个从文件中读取数据的问题的相关文章

c++的问题-C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题

问题描述 C++中的从文件中读取数据并用链表创建的问题,请帮我看一下我的代码在哪里出现了问题 Phone* creat() { ifstream file("Phone.txt"); if( !file ) { for( int i = 0 ; i < 7; i++ ) cout< cout cout system("pause"); system("cls"); } next=NULL; Phone *pNew,*head,*q;

android小白请教一段代码的详细解释。。非常感谢

问题描述 android小白请教一段代码的详细解释..非常感谢 代码如下 private String read(){ try{ FileInputStream fis=openFileInput(FILE_NAME); byte[] buff=new byte[1024]; int hasRead=0; StringBuilder sb=new StringBuilder(""); while ((hasRead=fis.read(buff))>0){ sb.append(ne

请教VC6.0++如何逐列读取TXT文件中的数据

问题描述 请教VC6.0++如何逐列读取TXT文件中的数据 例如TXT文件中的数据是这样 0 5 0.05 1 20 0.20 2 10 0.10 3 5 0.05 4 15 0.15 5 15 0.15 6 18 0.18 7 12 0.12 怎么把它们按每列读出来,分别放到三个不同的数组 解决方案 #include <stdio.h> #include <stdlib.h> void main(int argc, char *argv[]) { if (argc < 2)

android从资源文件中读取文件流并显示的方法_Android

本文实例讲述了android从资源文件中读取文件流并显示的方法.分享给大家供大家参考.具体如下: 在android中,假如有的文本文件,比如TXT放在raw下,要直接读取出来,放到屏幕中显示,可以这样: private void doRaw(){ InputStream is = this.getResources().openRawResource(R.raw.ziliao); try{ doRead(is); }catch(IOException e){ e.printStackTrace(

Android 之 使用File类在SD卡中读取数据文件

Android 之 使用File类在SD卡中读取数据文件 一.File 类读写文件 :  如果需要在程序中使用sdcard进行数据的存储,那么需要在AndroidMainfset.xml文件中 进行权限的配置:  <!-- 在sd中创建和删除文件的权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 向SD卡中的写入权限 --&

从文件中读取彝文在SWT中显示乱码,请高手帮忙解决,谢谢,----急急!!!!!

问题描述 现在做一个软件,其中有关于从文件中读取彝文并程序在SWT中显示的功能,现在从文件读取后显示是乱码,请高手指教一下,十分感谢!!! 解决方案 解决方案二:可以肯定是编程格式有问题,没看到你的代码,不好解答.解决方案三:你读的时候就用utf8格式就可以了解决方案四:应当是前后的编码格式有问题,你输出的时候以utf8格式输出解决方案五:Filef=newFile("E:\t.txt");InputStreamReaderread=newInputStreamReader(newFi

请教高手,现在在做个小程序,选个文件,然后算出这个文件的行数!!

问题描述 RT,用个filefield选择个文件,但是怎么得到行数呢?谢谢 解决方案 解决方案二:filefield是什么控件没有用过.如果打开的文件是TXT文件的话,可以通过以下几种办法:1.用fileStream把文件读过来,判断有几个rn2.把文件读到一个richtextbox里面,利用richtextbox的属性来判断有几行第一种办法一定行的,但是第二种没有亲手实验过,感觉应该行的解决方案三:本人觉得一楼的可以,就是读出来,看看有多少行了解决方案四:StreamReader=newStr

数据-android 验证读取的文件中是否包含特定字符

问题描述 android 验证读取的文件中是否包含特定字符 例如,一个txt文件中,有 a1,a2,a3, b1,b2,b3, c1,c2,c3, d1,d2,d3.....多组数据, 我程序中istrue(string str1,string str3,string str3){}方法怎么实现 str1,str2,str3三个数据在txt文件中存在,并且是一组数据?请教大神 解决方案 每次从这个txt文件里取出三个string即可 解决方案二: 把txt文件按字节读取,然后split分割,我想

Android中的数据传递之Parcelable接口

对于Android来说传递复杂类型,主要是将自己的类转换为基础的字节数组,Activity之间传递数据是通 过Intent实现的. Android序列化对象主要有两种方法,实现Serializable接口.或者实现Parcelable接口. 实现Serializable接口是Java SE本身就支持的,而Parcelable是Android特有的功能,效率比实现 Serializable接口高,而且还可以用在进程间通信(IPC)中.实现Serializable接口非常简单,声明一下就可 以了.而