安卓基础之内存读写(数据访问)

这篇博客探讨了如何在安卓应用中进行内存数据的读取和保存,通过简单的UI设计,包括两个按钮(保存和读取)、一个TextView和一个EditText,实现用户输入和数据显示的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

截图就不晒了  主要是两个button (用于保存和读取),一个textview 和一个editview  ,分别用于输入和显示

package com.example.zheng.filereadandwrite;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
public class MainActivity extends AppCompatActivity {
    private EditText inputtext;
    private TextView showtext;
    String filename="test";//文件名,我们可以直接拿来用,不要考虑路径什么的。-_-
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        inputtext=(EditText)findViewById(R.id.inputtext);
        showtext=(TextView)findViewById(R.id.showtext);
        findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    FileOutputStream fos=openFileOutput(filename,MODE_PRIVATE);
                    try {
                        OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF-8");
                        try {
                            osw.write(inputtext.getText().toString());
                            fos.flush();
                            osw.flush();
                            osw.close()//后打开的先关闭;
                            fos.close();
                            Toast.makeText(getApplicationContext(),"写入完成",Toast.LENGTH_SHORT).show();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }
        });
        //读取
        findViewById(R.id.read).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    FileInputStream fis=openFileInput(filename);
                    try {
                        InputStreamReader isr=new InputStreamReader(fis,"UTF-8");
                        try {
                            char input[]=new char[fis.available()];//定义一个字符数组用于储存读取的数据
                            isr.read(input);
                            isr.close();
                            fis.close();
                            String rd=new String(input);  将字符数组转为字符串
                            showtext.setText(rd);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }


                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值