Android SD卡 Txt 文件读写教程
4星 · 超过85%的资源 需积分: 50 76 浏览量
更新于2024-09-16
1
收藏 1002B TXT 举报
"在Android平台上,对SD卡进行读写操作是常见的需求,特别是涉及到存储用户数据或者应用程序需要持久化信息时。以下代码示例展示了如何读取和写入TXT文件到SD卡上。首先,为了能够访问SD卡,需要在AndroidManifest.xml文件中声明相应的权限。"
在Android系统中,如果应用程序需要对SD卡(外部存储)进行读写操作,必须首先获取相应的权限。这两个重要的权限是:
1. `WRITE_EXTERNAL_STORAGE`:允许应用写入外部存储(如SD卡),用于保存或修改文件。
2. `MOUNT_UNMOUNT_FILESYSTEMS`:这个权限较为特殊,主要用于挂载和卸载文件系统,一般情况下,只有系统应用才会使用此权限。对于普通的文件读写操作,通常不需要这个权限。
在AndroidManifest.xml文件中,添加如下代码来声明这两个权限:
```xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
```
接下来,我们来看如何实现具体的读写操作:
1. 写入TXT文件:
这段代码创建了一个名为`writeFileSdcard`的方法,接收两个参数,一个是文件名(fileName),另一个是要写入的内容(message)。首先,它尝试创建一个`FileOutputStream`对象,将路径指向SD卡根目录下的指定文件。然后,将字符串转换为字节数组,并写入到输出流中。最后关闭输出流。如果在操作过程中出现异常,会打印堆栈跟踪。
```java
public void writeFileSdcard(String fileName, String message) {
try {
FileOutputStream fout = new FileOutputStream(
android.os.Environment.getExternalStorageDirectory() + fileName);
byte[] bytes = message.getBytes();
fout.write(bytes);
fout.close();
} catch (Exception e) {
e.printStackTrace();
}
}
```
2. 读取TXT文件:
`readFileSdcard`方法用于读取SD卡上的TXT文件。同样,它接收一个文件名作为参数。首先,创建一个`FileInputStream`对象,打开指定文件。然后,通过`available()`方法获取文件的长度,创建相应大小的字节数组。接着,读取文件内容到字节数组,并使用`EncodingUtils.getString()`方法将字节转换回字符串,这里假设文件内容是UTF-8编码。最后关闭输入流并返回读取到的字符串。
```java
public String readFileSdcard(String fileName) {
String res = "";
try {
FileInputStream fin = new FileInputStream(
Environment.getExternalStorageDirectory() + fileName);
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
```
需要注意的是,从Android 6.0(API级别23)开始,运行时权限管理引入,即使在AndroidManifest.xml中声明了权限,仍然需要在运行时请求用户的许可。因此,在实际应用中,还需要检查并请求用户授权`WRITE_EXTERNAL_STORAGE`权限。
此外,由于Android 10(API级别29)引入了分区存储,对非媒体文件的直接访问可能受到限制。对于新版本的Android,可能需要使用`getExternalFilesDir()`或`MediaStore` API来访问外部存储。在Android 11(API级别30)之后,直接写入公共目录可能会更受限,推荐使用`getExternalCacheDir()`或`getExternalFilesDir()`等方法来获取私有目录,这样无需用户权限即可进行读写操作。
2018-06-21 上传
2021-01-05 上传
2023-09-02 上传
2023-05-26 上传
2023-06-08 上传
2023-09-13 上传
2023-06-09 上传
2023-10-12 上传
cwc455826074
- 粉丝: 8
- 资源: 20
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全