java - Android 的写入和读取

标签 java android

我的代码有问题,我需要从用户那里读取 EditText,然后将该文本放入另一个布局中并进行一些计算。我的问题是我不明白如何在 Android 中读取/写入数据。下面是读/写代码的 fragment 。

感谢您的帮助!

编辑:应该注意的是,所有这些都在我的 MainActivity 类中

public EditText editName;
public EditText editAMT;
public Button save;

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    editName = (EditText) findViewById(R.id.editName);
    editAMT = (EditText) findViewById(R.id.editAMT);
    save = (Button) findViewById(R.id.save);


    File fName = new File(name);
    File fAMT = new File(AMT);

    //WRITING TO THE FILE
    try{
        FileOutputStream test = openFileOutput(name, Context.MODE_PRIVATE);
        FileOutputStream test2 = openFileOutput(AMT, Context.MODE_PRIVATE);

        test.write(editName.getText().toString().getBytes());
        test2.write(editAMT.getText().toString().getBytes());

        test.close();
        test2.close();

    } catch(Exception e){
        e.printStackTrace();
    }

    //READING FROM THE FILE

    try{
        BufferedReader inputReader = new BufferedReader(new InputStreamReader(openFileInput(name)));
        String inputString;
        StringBuffer stringBuffer = new StringBuffer();

        while ((inputString = inputReader.readLine()) != null){
            stringBuffer.append(inputString + "\n");
        }

    } catch (IOException e){
        e.printStackTrace();
    }

}

编辑:这是我的行动计划。

1) 从名为 (eAMT) 的 EditText 获取信息。 2) 从名为(eName)的EditText获取信息。 3) 将eAMT 的信息放入名为eName.txt 的文件中。 4) 在另一个 Activity 中,搜索名为eName 的文件。 5) 搜索完成后,提取该文件的内容并显示到另一个 Activity (主 Activity )上。

最佳答案

不要写入文件,而是使用 Android 的 SharedPreferences:

SharedPreferences preferences = getSharedPreferences("com.example.myapp", MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("UniqueEditNameKey", editName.getText().toString);

从另一个 Activity 中,您可以执行以下操作来检索值:

SharedPreferences preferences = getSharedPreferences("com.example.myapp", MODE_PRIVATE);
String name = preferences.getString("UniqueEditNameKey", ""); // second argument is default value if key does not exist

关于java - Android 的写入和读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874850/

相关文章:

java - 配置 Swagger-UI 以获取 Spring 的 HttpSecurity Logout 端点

android - Retrofit Request Interceptor 阻塞主线程

java - Android 动画 startOffset 损坏或错误?

android - 如何为 Android 构建传感器模拟器?

java - 如何使用 android java 创建 facebook 相册并将照片上传到 facebook 相册?

android - 如何检查数据是否已经在缓存中 OkHttp

java - 如果模拟对象在实现类中设置为 null,则失去模拟

JAVA错误找不到符号

java - SqlSessionFactory 必须使用 SpringManagedTransactionFactory 才能使用 Spring 事务同步

java - 如何将 Swing DISPOSE_ON_CLOSE 连接到菜单栏选项