• Android学习11


    Android存储概念

    File内部存储

    通过file=openFileOutput()获得,将数据存储在data/data/+包名+files下面。 

    layout布局文件:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="15dp">
    
        <EditText
            android:id="@+id/et_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="输入内容"/>
    
        <Button
            android:id="@+id/btn_save"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:text="保存"
            android:textSize="20sp"/>
    
        <Button
            android:id="@+id/btn_show"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="显示"
            android:textSize="20sp"/>
    
        <TextView
            android:id="@+id/tv_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"/>
    
    </LinearLayout>
    activity_file

    Activity:

    package com.example.helloworld.datastorage;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    import com.example.helloworld.R;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class FileActivity extends AppCompatActivity {
    
        private EditText mEtName;
        private Button mBtnSave,mBtnShow;
        private TextView mTvContent;
        private final String mFileName = "test.txt";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_file);
            mEtName = findViewById(R.id.et_name);
            mBtnSave = findViewById(R.id.btn_save);
            mBtnShow = findViewById(R.id.btn_show);
            mTvContent = findViewById(R.id.tv_content);
    
            mBtnSave.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    save(mEtName.getText().toString());
                }
            });
            mBtnShow.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mTvContent.setText(read());
                }
            });
        }
    
        //存储数据
        private void save(String content){
            FileOutputStream fileOutputStream = null;
            try {
                fileOutputStream = openFileOutput(mFileName,MODE_PRIVATE);
                fileOutputStream.write(content.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if(fileOutputStream != null){
                    try{
                        fileOutputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
        //读取数据
        private String read(){
            FileInputStream fileInputStream = null;
            try {
                fileInputStream = openFileInput(mFileName);
                byte[] buff = new byte[1024];
                //用StringBuilder来实现字符串拼接
                StringBuilder sb = new StringBuilder();
                int len = 0;
                while((len = fileInputStream.read(buff)) > 0){
                    sb.append(new String(buff,0,len));
                }
                return sb.toString();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                if(fileInputStream != null){
                    try{
                        fileInputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            return null;
        }
    }
    FileActivity

  • 相关阅读:
    sqlite语法
    java 多态性
    Jekyll Bootstrap初始
    2019年 八年级下册期中总结
    2019年 八年级下册期中总结
    【洛谷P1415】拆分数列【dp】
    【洛谷P1415】拆分数列【dp】
    【洛谷P1197】星球大战【并查集】
    【洛谷P1197】星球大战【并查集】
    【P1261】服务器储存信息问题【最短路】
  • 原文地址:https://www.cnblogs.com/xjmm/p/12294861.html
Copyright © 2020-2023  润新知