Android studio 如何实现数据保存

你好!本人是Android studio编程初学者 ,最近自己尝试在做一个APP,已经可以实时
显示我希望得到的数据了,但是我想将希望得到的实时显示的数据保存下来,保存到文件
中就行,这是代码:
package com.gdy.filepersistencetest;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Environment;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class MainActivity extends Activity {
private EditText edit;

@Override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    edit = (EditText)findViewById(R.id.edit);
}
@Override
protected void onDestroy(){
    super.onDestroy();
    String inputText = edit.getText().toString();
    saveToSDCard("wxhn",inputText);
}

// save infomation in the SDCard
public boolean saveToSDCard(String fileName, String content) {

    // judge weather the SDCard exits,and can be read and written
    if (!Environment.getExternalStorageState().equals(
            Environment.MEDIA_MOUNTED)) {
        return false;
    }

    FileOutputStream fileOutputStream = null;
    File file = new File(Environment.getExternalStorageDirectory(),
            fileName);
    try {
        fileOutputStream = new FileOutputStream(file);
        fileOutputStream.write(content.getBytes());
        return true;
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {

            if (fileOutputStream != null) {
                fileOutputStream.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return false;
}

}
可是当我将APP安装到手机上,找不到我保存的数据,不知道是不是没保存还是我没找到,请大神指导!!

2个回答

第一你要加上写入SD卡的权限,第二sdk版本过高,不让直接操作sd的其他目录,只能写在应用程序对应的目录下,用这个来获取对应的目录getExternalFilesDir()

zhanshenjz
zhanshenjz 没有弄sd卡权限。还有路径问题。
3 年多之前 回复
shenshucong520
glustful 回复GDY893282809: 你要追加内容就把文件的打开方式设置为append模式,你的app强制退出是你的程序有问题,你要把异常发上来才知道是什么原因让他退出的
大约 4 年之前 回复
GDY893282809
GDY893282809 对了 还有个小问题,显示的程序我是在一个Demo工程添加的一项内容,APP安装,点开我自己写的这一项可以实时显示数据,当我点返回键的时候APP就跳出无法运行的窗口,APP强制退出。其他Demo原本有的我点开返回都没事,就是我自己写的有问题。????
大约 4 年之前 回复
GDY893282809
GDY893282809 对了 还有个小问题,显示的程序我是在一个Demo工程仿写的,添加的一项内容,APP安装点开气自己写的这
大约 4 年之前 回复
GDY893282809
GDY893282809 你好!非常感谢!上面的代码只是我为了保存数据做的一个小的实验,我实时显示的数据是通过append实现的,请问我这种方法将实时显示的数据保存 可行吗?我还有个问题 ,就是这种方法刚刚我已经调通了,但是每次新的内容会将旧的内容覆盖,请问有什么方式可以不覆盖吗?多谢!!!
大约 4 年之前 回复

你好!非常感谢!上面的代码只是我为了保存数据做的一个小的实验,我实时显示的数据是通过append实现的,请问我这种方法将实时显示的数据保存
可行吗?我还有个问题 ,就是这种方法刚刚我已经调通了,但是每次新的内容会将旧的内容覆盖,请问有什么方式可以不覆盖吗?多谢!!!

zhanshenjz
zhanshenjz 这个问题,暂时还没有好的答案。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐