Android中读写文件

Android学习之请求外部存储sd卡读写权限(适配Android8.0以上包含Android10.0)少花时间少踩坑! SD卡读写权限在Android各版本有所不同,现将各版本关于sd卡读写权限申请特点记录下来并分享给大家 前言 在学习《第一行代码》播放SD卡根目录中的音乐时,碰到了无法读音乐文件的问题 android.system.ErrnoException: open failed: EACCES (Permission denied) 经过查阅相关资料,现把个人的解决方法记录下来 Android 6.0(不含)以下 在6.0之前的版本,申请sd卡读写权限不是一件难事,只需要在AndroidManifest.... 阅读详情

1.手机flash读写 这个属于app的独立权限,即每个app默认只能读写自己文件夹下的文件.默认路径为/data/data/your_project/files/

 

2.sdcard读写 默认android系统对每个app都开放读写功能。默认路径为/mnt/sdcard/ 或者/sdcard/
写外部存储即sdcard的权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

打开关闭sdcard的权限<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> 

 

 

1.手机flash读写相关API

存储文件:
FileOutputStream outStream=this.openFileOutput("zhzhg.txt",Context.MODE_PRIVATE);
outStream.write("文件的读写",getBytes());
outStream.close();
读取文件:
FileInputStream inStream=this.getContext().openFileInput("zhzhg.txt");

----------------------------------------------------------------------
使用绝对路径打开文件:
File file = new File("/data/data/cn.zhzhg.action/files/zhzhg.txt");
FileInputStream inStream = new FileInputStream(file);
Log.i("FileTest", readInStream(inStream));
注意:上面文件路径中的“cn.zhzhg.action”为应用所在包,当你在编写代码时应替换为你自己应用使用的包。
----------------------------------------------------------------------
读取文件的方:
public static String readInStream(FileInputStream inStream){
  try {
   ByteArrayOutputStream outStream = new ByteArrayOutputStream();
   byte[] buffer = new byte[1024];
   int length = -1;
   while((length = inStream.read(buffer)) != -1 ){
    outStream.write(buffer, 0, length);
   }
   outStream.close();
   inStream.close();
   return outStream.toString();
  } catch (IOException e){
   Log.i("FileTest", e.getMessage());
  }
  return null;
}
Activity还提供了getCacheDir()和getFilesDir()方法:
getCacheDir()方法用于获取/data/data/<package name>/cache目录
getFilesDir()方法用于获取/data/data/<package name>/files目录

 

 

2.sdcard读写相关API

获取SDCard的状态:Environment.getExtemalStorageState()
  EnvironmentMEDIA_MOUNTED手机装有SDCard,并且可以进行读写
获取SDCard的目录:Environment.getExtemalStorageDirectory()
     File saveFile=new File("/sdcard/zhzhg.txt");
        或:File sdCardDir=new File("/sdcard");//获取SD卡目录
     File saveFile-new File(sdCardDir,"zhzhg.txt");
        FileOutputStream outStream = new FileOutputStream(saveFile);
outStream.write("文件的读写".getBytes());
outStream.close();

sdcard文件详细操作http://zhuyonghui116.blog.hexun.com/56778119_d.html

 

 

 

 

可以看出owner是system,你只要在sdcard_rw组的话就可以读写

一般你的程序要写sd的话需要申请如下权限
    <permission name="android.permission.WRITE_EXTERNAL_STORAGE" >
        <group gid="sdcard_rw" />
    </permission>

在sdcard中创建/删除文件的权限用android.permission.MOUNT_UNMOUNT_FILESYSTEMS
往sdcard中写入数据权限为android.permission.WRITE_EXTERNAL_STORAGE
gid好像可以不用写在xml中也可以。你申请者权限,执行的时候你就在相应的group中了。

你看到的权限主要是限制system用户对sdcard的读写。


android 12 SD动态申请读写权限 阅读详情

相关推荐

android安卓12/11文件读写权限的设置

安卓11的时候继续强化对SD卡读写的管理,引入了MANAGE_EXTERNAL_STORAGE权限,而之前的WRITE_EXTERNAL_STORAGE已经失效了。ToastUtil.showCenterToast("文件不存在,创建成功");6.0之前是不需要动态申请权限的,直接在manifest中申请即可以正常使用。并且MANAGE_EXTERNAL_STORAGE权限只能跳转设置页面申请。在返回的结果里面进行判断,如果给予了权限,则进行写入操作。2.Android 6.0 SDK=23 及以上。

安卓世界库 4938

Android 外置SDCard读写权限总结

在Android中SD卡的读写权限会经常用到,但由于最近的几个版本对该部分一直在做相应的变动,所以在此做个总结,梳理一下。 主要的权限为:android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE下面就没个版本对SDCard权限的变化做详细的介绍:Android 4.4如果同时使用了机身存储和

Luckcat 3万+

安卓读写文件权限测试

我们在做各种程序,App稍微复杂点,都难免要进行读写文件。windows还好,虽然也有各种权限和安全机制,但就读写文件来说,还好,管理员权限的话,几乎可以读写任何文件了。。。废话少说,还是来说正题。 首先,我在做一款app的时候,就需要进行读写文件,在没有进行系统测试整理之前,总是一头雾水。 主要有两点: 1 各种getXXX函数返回的路径到底是啥? 2 各种存储位置都需要怎么样才能有读写权限? 关于问题1,已经有大神总结的很好了 https://blog.youkuaiyun.com/u010937230/

allenhiman的专栏 1309

Android 文件读写最全解析

本文目录文件读写概述读取raw目录文件读取assets目录文件data/data/(包名) 目录文件读写写数据读数据sdcard文件读写申请动态权限写数据读数据完整代码 文件读写概述 raw下的和assert下的文件可以以资源文件的形式读取,这些目录的数据只能读取,不能写入,两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。 读取raw目录文件 在读文件前我们先把raw 文...

lucashu的博客 2万+

Android:文件读写

Android:文件读写,XML文件解析,SQLite数据库操作

偶是不器的博客 1386

Android存储权限管理与外部SD卡写入权限

在Android应用程序中,访问设备上的存储空间是一个常见的需求,而获取外部SD卡的写入权限则是其中一个重要的方面。本文将介绍Android中的存储权限管理以及如何获取外部SD卡的写入权限,并提供相应的源代码示例。本文介绍了Android中存储权限管理的基本概念和具体实现方式,并提供了获取外部SD卡写入权限的完整示例代码。方法中,首先获取SD卡路径,并创建一个名为"MyApp"的文件夹,然后在该文件夹下创建一个名为"example.txt"的文件,并将"Hello, world!数组判断权限是否被授予。

2301_79366332的博客 2390

BeeWare 开发安卓程序 OpenCV,文件读写,基于安卓14

尝试使用 Android Studio 开发小程序,因不熟悉新版本转而使用 Python 和 BeeWare 框架。开发过程中遇到文档缺失、功能实现困难、与原生 Android 交互复杂等问题,虽然实现了开发所需要的功能,还是认为应优先考虑 Android 原生开发。

weixin_42601990的博客 1960

QT+SOEM主站协议库实战指南—从编译到嵌入式应用

本文提供了一份QT与SOEM开源EtherCAT主站协议库的集成实战指南。详细介绍了在Windows和Linux平台下编译SOEM库的步骤,并讲解了如何将其无缝集成到QT项目中,构建具备实时监控与控制功能的工业上位机应用。内容涵盖从环境搭建、核心协议开发到嵌入式部署与优化的全流程,为开发高性价比、自主可控的工业控制解决方案提供完整路径。

u6v7w8x的博客 439

android unity 文件读写_虚幻4安卓VR应用设置读写权限相关话题

用虚幻4开发VR项目,在用虚幻4自动生成的的Install_xxx-Android-Shipping-arm64-es2.bat工具安装项目,项目正常运行。但是用Adb Install命令手动安装项目,却出现了问题。查找后发现,原来是读写权限被限制了。研究之后,得知安卓读写权限需要修改AndroidManifest.xml文件需要在AndroidManifest.xml文件中插入这两行:<u...

weixin_32112607的博客 716

视觉检测在激光打码字符检测上的检测案例

在机器视觉检测技术中,OCR识别是比较典型的应用,应用的场景也比较丰富,基本上在制造业,每个工厂或者印刷厂都会用到视觉OCR识别检测,OCR字符识别的原理很简单,通过图像分割后,对字符进行学习、命名。在工业相机拍摄图像后,软件进行处理,从而读取结果。 随着技术的发展,激光打标技术被更多的应用在生产过程中,由激光打标代替油墨进行字符印刷,速度更快、效果更好。 但是随之而来的是在视觉检测上带来的影响,目前市面上应用的字符检测设备大多是由集成商单独开发的软件,在检测油墨印刷时,图像上的字符没有断点,非常连贯,所需

视觉检测设备-视觉检测系统-单张检测设备-卷料印品检测 1463

数据工程师——ETL

文章摘要 ETL(数据抽取、转换、加载)是数据处理的核心流程,负责将分散数据源整合为高质量数据。ETL与ELT的主要区别在于转换步骤顺序,分别适用于不同规模数据场景。数据仓库通过ETL从多个数据源集成数据,支持分析决策。维度建模中的事实表记录业务指标,维度表提供上下文信息。缓慢变化维度(SCD)处理随时间变化的维度数据,常见类型包括直接覆盖型、新增版本型等。数据清洗解决数据缺失、重复、错误等问题,确保数据质量。数据血缘记录数据流转路径,便于问题排查和影响分析。常用ETL工具如Kettle通过转换和作业实现数

weixin_45729710的博客 1559

Unity 发布 Android 安卓端所有文件可读写

现在有个需求,读写安卓系统的根目录下的文档路径为在Unity PlayerSetting里有一个设置访问非持久化路径的设置但是实际打包后发现还是访问不了。解决方法。

_乐无的博客 468

GD32F450以太网(2-2): PHY芯片IP101GR介绍

IP101是台湾省九阳电子公司生产制造的,符合IEEE 802.3/802.3u标准单端口快速以太网收发器100Mbps和10Mbps操作,它支持自动MDI/MDIX功能,简化网络安装和减少系统维护成本。支持Auto MDI/MDIX已内置4个49.9欧的精密电阻支持中断功能支持 MII/RMII 接口超低功耗

Zhichao_Zhang的博客 1万+

文件读写android,Android 文件读写详解

关于Android文件的读写有两种方式一种是将txt文件当成资源文件放在res/raw或则res/asset文件夹下,raw的文件可以通过R.raw.fileName获得,asset下的文件可以通过AssetManageram=getAssets();am.open(“FileName”);来打开文件。但是如果把文件当成资源文件存放的话,只能读不能写。如果要想写入数据的话,就使用第二种方法第...

weixin_29045585的博客 1057

基于Simulink的魔术公式轮胎动力学仿真

本篇博文主要用来记录汽车系统动力学课程的学习,仅供课程阶段参考,与实际工程应用还有较大距离。基于Simulink的魔术公式轮胎动力学仿真本实例主要有以下任务。1.建立魔术公式轮胎动力学仿真模型。2.绘制不同载荷下的轮胎纵向力—滑动率关系曲线。3.绘制不同载荷下的轮胎侧向力—侧偏角关系曲线。4.绘制不同载荷下的轮胎回正力矩—侧偏角关系曲线。提示:以下是本篇文章正文内容,下面案例可供参考。

shy_201992的博客 6940

Windows11安装配置openclaw+deepseek(大龙虾)

密码可以随便设置(注意wsl系统本质上是linux系统,设置密码系统是不会像windows一样显示*点位符的),输入密码后敲回车再次输入密码,输入后敲回车。如果不小心关闭这个界面,可以再次进入powershell,输入wsl进行系统。在powershell中输入:curl -fssL https://openclaw.ai/install.sh | bash。下面是否通过第3方平台和openclaw交互,我选择j最后一项:skip for now。到下面这一步,可以通过键盘的左箭头选择Yes.

mahailiang的专栏 344

Android 文件的读写

一、Android文件读写其实与JAVA的读写方式都一样,现在主要是以文件流的形式,就行文件的写入与读写 public class MainActivity extends Activity { private EditText fileName; private EditText fileContent; @Override public void onCr

优快云_Lzj_2008的专栏 464

YOLOv9实战:刀具磨损实时监控从摄像头到预测性维护(附车间落地代码)

摘要: 本文针对制造业刀具磨损监控痛点,提出基于YOLOv9的实时视觉检测方案。通过工业相机采集刀具图像,结合图像预处理(去油污、增强对比度)和深度学习模型,实现磨损等级分类与寿命预测。系统集成硬件选型(抗油污相机、红色环形光源)、数据增强(旋转、噪声模拟)及预测性维护(PLC联动),实测刀具利用率提升30%,工件报废率降至0.5%以下。详解车间部署、模型训练到系统落地的全流程,附代码与避坑指南,为工业视觉项目提供实战参考。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 541

android文件工具类,安卓文件读写工具类

import android.content.Context;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import static android.content.Context.MODE_PRIVATE;public c...

weixin_39929635的博客 255

从入门到精通!Arduino 全栈开发深度指南

本文围绕 Arduino 开发撰写全攻略,从基础入门到高级应用层层递进。开篇介绍 Arduino 概念、优势及硬件家族,引导读者完成开发环境搭建与首个 LED 闪烁项目;深入讲解编程语法、I/O 控制及通信协议;详细阐述传感器、模块应用与调试优化技巧;最后以自定义库开发、低功耗设计等高级内容收尾,并给出综合项目案例与产品化思路。无论新手入门,还是开发者进阶,均可从中系统学习 Arduino 知识,掌握从理论到实践的全流程开发技能。

邓邓子的博客 2756

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

在安卓手机中读写文件基本方法

做了很多年的Java B/S开发,主要应用场景都是一些企业级的应用或平台开发。大部分情况下对于数据的读写和存储都是在数据库或者服务器session中进行的。但是在安卓手机上,遇到本地文件的读写的情况还是挺多的,所以整理一下。 第一步:权限 在AndroidManifest.xml配置文件中增加对文件读取的权限: 第二步:代码 首先要确认的是,安卓不同于iOS,文件的读写是分

女儿控老徐的专栏 7074

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

安卓c语言打开文件,Android编程之文件读写操作与技巧总结【经典收藏】

本文实例总结了Android文件读写操作。分享给大家供大家参考,具体如下:在Android中的文件放在不同位置,它们的读取方式也有一些不同。本文对android中对资源文件的读取、数据区文件的读取、SD卡文件的读取及RandomAccessFile的方式和方法进行了整理。供参考。一、资源文件的读取:1) 从resource的raw中读取文件数据:String res = "";try{//得到资源...

weixin_39589557的博客 880

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android sd卡 读写文件系统,安卓10写入和读取sdcard文件

从target=29开始,要想读取sdcard中的文件,通过Environment.getExternalStoreage读取sdcard文件的方式已经行不通了。当然,官方提供了一种缓解策略,在application的manifest中定义:`android:maxSdkVersion="28" />`复制代码创建并且写入文件写入文件需要用户点击确定,并且如果文件重名,会默认在后面加上(1)...

weixin_39581099的博客 2330

安卓开发-文件读写权限

安卓开发-文件读写权限 安卓规定app创建的私有文件只有该app可以读写;想要使其他app也可以读写的文件就需要创建公有文件,请看下面两个例子:

hhyihquk1的博客 7776
上一篇: startActivityForResult 用法
下一篇: 最新历史版本 :Android中正确自适应屏幕翻转
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值