安卓读写文件

在manifests里面加权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

申请权限

super.onCreate(savedInstanceState);
// 申请权限
if (Build.VERSION.SDK_INT >= 23) {
            int REQUEST_CODE_CONTACT = 101;
            String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
            //验证是否许可权限
            for (String str : permissions) {
                if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                    //申请权限
                    this.requestPermissions(permissions, REQUEST_CODE_CONTACT);
                }
            }
        }
setContentView(R.layout.activity_main);
String root = Environment.getExternalStorageDirectory().getPath();
String file_name = "/test.txt";
// 调用写入文件方法
int result = saveFile(root,file_name);
if(result) System.out.println("写入成功");
// 调用读取文件方法
String text = readRile(root,file_name);
if(!text.equals(""))System.out.println("读取成功:"+text);

写入文件

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    public String saveFile(String root,String file_name) {
    	// 实例化一个文件对象
        File file = new File(root);
        // 判断目录是否存在,false不存在
        if (!file.exists()) {
            // 目录不存在则创建目录
            try{
            	file.mkdir();
            }catch(IOException e){
            	return 0;
            }
        }
        // 准备好文件
        String fileFullPath = root+file_name;
        File txt = new File(fileFullPath);
        // 判断是否存在文件
        if (!txt.exists()) {
            try {
            	// 创建文件字节流操作对象
                FileOutputStream fileOutputStream = new FileOutputStream(fileFullPath);
                // write将字符串写入文件、文件不存在时会自动创建
                fileOutputStream.write("123456");
                // 不使用了记得关闭文件流、不手动关闭的话有会内存和占用问题
                fileOutputStream.close();
                return 1;
            } catch (IOException e) {
                return 0;
            }
        }
        return 0;
    }

读取文件

public String readRile(String root,String file_name) {
		// 路径
        String strFullPath = root+file_name;
        // 字符串
       	String str;
        // 字节数组
        byte[] buffer = new byte[1024];
        try {
        	// 新建文件读写流对象
            FileInputStream fi = new FileInputStream(strFullPath);
            // 开启循环
            while (true) {
            	// 读取文件内容、当读取完内容时返回len == -1
                int len = fi.read(buffer);
                // 内容不为空时赋值
                if (len > 0) {
                    str = new String(buffer, 0, len);
                } else { // 内容为空时退出循环 
                    break;
                }
            }
        } catch (IOException e) {
            return "";
        }
        return str;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修罗_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值