Android之简单文件存储读取

编写项目,包含一个Activity。Activity页面效果如下图所示。在红色文本框中输入任意信息(输入不能为空,否则提示保存失败),点击保存按钮,将字符串以data.txt文件的形式保存到Android系统当中,点击读取按钮,将data.txt文件当中的字符串读取出来,并显示在Activity蓝色文本区域当中,注意在绿色方框中显示存储操作成功/失败的提示信息,例如“文件保存成功!”。

先写xml布局文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical">
 6 
 7     <LinearLayout
 8         android:layout_width="match_parent"
 9         android:layout_height="150dp"
10         android:orientation="vertical">
11 
12         <TextView
13             android:id="@+id/textView6"
14             android:layout_width="match_parent"
15             android:layout_height="55dp"
16             android:layout_weight="1" />
17         <EditText
18             android:id="@+id/textView7"
19             android:layout_width="match_parent"
20             android:layout_height="match_parent"
21             android:layout_weight="1" />
22     </LinearLayout>>
23 
24     <LinearLayout
25         android:layout_width="wrap_content"
26         android:layout_height="wrap_content"
27         android:orientation="horizontal">
28 
29         <Button
30             android:id="@+id/button48"
31             android:layout_width="wrap_content"
32             android:layout_height="match_parent"
33             android:text="保存" />
34 
35         <Button
36             android:id="@+id/button49"
37             android:layout_width="wrap_content"
38             android:layout_height="match_parent"
39             android:text="读取" />
40     </LinearLayout>
41 
42     <EditText
43         android:id="@+id/textView8"
44         android:layout_width="match_parent"
45         android:layout_height="wrap_content" />>
46 
47 </LinearLayout>

核心内容就是保存文件和读取文件,我们这里是内部存储,所以不用写分配权限

所以我们的思路就是在输入框输入,点击保存按钮,显示框弹出保存成功的提升,然后点击读取,读取框显示出我们刚刚输入的内容

代码

 1 package com.example.app;
 2 
 3 import androidx.annotation.RequiresApi;
 4 import androidx.appcompat.app.AppCompatActivity;
 5 
 6 import android.Manifest;
 7 import android.os.Build;
 8 import android.os.Bundle;
 9 import android.view.View;
10 import android.widget.*;
11 
12 import java.io.FileOutputStream;
13 import java.io.FileInputStream;
14 import java.security.Permission;
15 import java.security.Permissions;
16 
17 
18 public class MainActivity extends AppCompatActivity {
19 
20     //private static String[] PERMISSIONS_STORAGE = {
21     //        Manifest.permission.READ_EXTERNAL_STORAGE,
22     //        Manifest.permission.WRITE_EXTERNAL_STORAGE
23     //};如果是外部存储就需要写这些
24     private TextView back_w; //提示框
25     private EditText write_w; //写入框
26     private EditText read_w; //读取框
27     private Button save_b;
28     private Button read_b;
29 
30     @RequiresApi(api = Build.VERSION_CODES.M)
31     @Override
32     protected void onCreate(Bundle savedInstanceState) {
33         super.onCreate(savedInstanceState);
34         setContentView(R.layout.homework_8_1);
35 
36         //this.requestPermissions(PERMISSIONS_STORAGE,1);外部存储权限
37         back_w = (TextView) findViewById(R.id.textView6);
38         write_w = (EditText) findViewById(R.id.textView7);
39         read_w = (EditText) findViewById(R.id.textView8);//实例化
40 
41         save_b = (Button) findViewById(R.id.button48);
42         save_b.setOnClickListener(new View.OnClickListener() {//监听保存按钮
43             @Override
44             public void onClick(View v) {
45                 String read_c = ""; //用来接收输入
46                 read_c = write_w.getText().toString();
47                 if(read_c.equals("")){//判断输入是否为空
48                     back_w.setText("输入不能为空,保存失败!");
49                 }else {
50                     save(read_c); //调用保存方法
51                     back_w.setText("保存成功!");
52                 }
53             }
54         });
55 
56         read_b = (Button) findViewById(R.id.button49);
57         read_b.setOnClickListener(new View.OnClickListener() {//监听读取按钮
58             @Override
59             public void onClick(View v) {
60                 //如果没有保存文件,肯定就无法解析,所以还是得来个判断,判断是否有保存文件,该怎么判断呢???
61                     read();//调用读取方法
62             }
63         });
64         }
65 
66     public void save(String save_w){//保存方法
67         String filename = "data.txt";
68         String content = save_w;
69         FileOutputStream fos;
70         try{
71             fos = openFileOutput(filename,MODE_PRIVATE);
72             fos.write(content.getBytes());
73             fos.close();
74         }catch (Exception e){
75             e.printStackTrace();
76         }
77     }
78 
79     public void read(){//读取方法
80         String content = "";
81         FileInputStream fis;
82         try {
83             fis = openFileInput("data.txt");
84             byte[] buffer = new byte[fis.available()];
85             fis.read(buffer);
86             content = new String(buffer);
87             fis.close();
88         }catch (Exception e){
89             e.printStackTrace();
90         }
91         read_w = (EditText) findViewById(R.id.textView8);
92         read_w.setText(content);
93     }
94 }

结果如图

原文地址:https://www.cnblogs.com/rebirther/p/12887914.html