android-内部存储

设计内部存储有两个api

Context.getFileDir(); 获取到/data/data/包名/files

Context.getCacheDir() 获取到/data/data/包名/cache

内部存储不需要动态获取权限,但是依旧需要在Manifast.xml文件里面添加文件读写权限

    
    

 

XML布局和前一章,外部存储一样,这里不再做说明

 

java:

package com.example.handleproject;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class fleDirActivity extends AppCompatActivity {

    private TextView mTextView;
    private Button save;
    private  Button read;
    private  TextView showText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fle_dir);
        mTextView=findViewById(R.id.text);
        save=findViewById(R.id.save);
        read=findViewById(R.id.read);
        showText=findViewById(R.id.showTxt);


    }
    public  void  oprerate(View v){
        File f=new File(getFilesDir(),"getFilesdIR.txt");
        switch (v.getId()){
            case R.id.save:

                try{
                    if(!f.exists()){
                        f.createNewFile();
                    }
                    //用追加的模式写入
                    FileOutputStream fos=new FileOutputStream(f);
                    String str=mTextView.getText().toString();
                    fos.write(str.getBytes());
                    fos.close();//不要忘记关闭写入

                }catch (IOException E){
                    Log.d("External err", E.getMessage());
                }
                break;
            case R.id.read:
                try{
                    FileInputStream fis=new FileInputStream(f);
                    byte[] b=new byte[1024];
                    int len=fis.read(b);
                    String str2=new String(b,0,len);
                    showText.setText(str2);

                }catch (IOException E){
                    E.printStackTrace();
                }
                break;
        }
    }

}

 

如果在device file exploer 里面没有找到文件,可以试下右键同步来刷新数据

你可能感兴趣的:(android,内部存储)