zoukankan      html  css  js  c++  java
  • 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 }

    结果如图

  • 相关阅读:
    准备ing
    六月的最后一星期
    对象及其内存管理 笔记
    数组及其内存管理 笔记
    笔记
    搜狐 云端服务组实习面试小记
    leetcode之Binary Tree Level Order Traversal
    数据库01-范式总结
    Tour UVa 1347 (DAG)
    Directed Acyclic Graph DAG(有向无环图)上的DP
  • 原文地址:https://www.cnblogs.com/rebirther/p/12887914.html
Copyright © 2011-2022 走看看