Android文件读写操作与实例代码解析
45 浏览量
更新于2024-12-21
收藏 7.11MB 7Z 举报
资源摘要信息:"Android:文件读写"
在Android平台上,进行文件读写操作是应用程序开发中的一项基础技能。Android系统为应用程序提供了一套用于文件操作的API,这些API使得开发者可以在内部存储、外部存储或内存缓存中进行数据的读写操作。以下将详细介绍Android文件读写的关键知识点,并提供实例代码以供参考。
### 关键知识点
1. **内部存储**:内部存储是每个应用默认的存储空间,其他应用无法直接访问,数据是私有的。在内部存储中读写文件可以分为私有文件和共享文件。
2. **外部存储**:外部存储包括SD卡等移动存储设备。它可以被用户访问,用于存放用户可共享的文件,或者被多个应用共享。在外部存储中进行文件操作,需要请求相应的权限。
3. **文件操作API**:Android提供了`java.io`和`java.nio`等包下的API进行文件操作,包括但不限于`FileInputStream`、`FileOutputStream`、`BufferedReader`、`BufferedWriter`等。
4. **读写权限**:在AndroidManifest.xml中声明读写权限。例如,读写外部存储需要声明`<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>`和`<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>`。
5. **文件访问模式**:文件访问模式主要包括读模式(r)、写模式(w)、追加模式(a)等,这在创建`FileOutputStream`或`FileInputStream`时使用。
6. **运行时权限请求**:从Android 6.0(API 级别 23)开始,需要在运行时请求敏感权限。因此,在进行文件读写操作前,应检查并请求权限。
7. **文件路径和目录管理**:了解如何获取应用的私有目录路径、外部存储的公共目录路径,以及如何创建、删除和管理文件和目录。
### 实例代码分析
假设有一个名为`AndroidProject5`的Android项目,其中包含文件读写的实例代码,我们将逐一分析可能包含的关键代码段。
#### 写入文件
在内部存储中写入文件的代码可能如下所示:
```java
FileOutputStream fos = openFileOutput("example.txt", Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Hello, Android!");
bw.close();
```
这段代码首先通过`openFileOutput`方法获取一个`FileOutputStream`对象,指定文件名和访问模式(此处为私有模式)。然后,使用`OutputStreamWriter`和`BufferedWriter`将字符串"Hello, Android!"写入文件。
#### 读取文件
从内部存储读取文件的代码可能如下所示:
```java
FileInputStream fis = openFileInput("example.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
Log.d("FileReader", line);
}
br.close();
```
这段代码通过`openFileInput`方法获取`FileInputStream`对象,然后利用`InputStreamReader`和`BufferedReader`逐行读取文件内容,并使用`Log.d`记录读取到的内容。
#### 写入外部存储
若需要将文件写入到外部存储,首先需要请求权限:
```java
// 请求权限
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
}
```
然后,使用`FileOutputStream`将数据写入到外部存储:
```java
FileOutputStream fos = new FileOutputStream(Environment.getExternalStorageDirectory() + "/AndroidProject5/example.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Hello, External Storage!");
bw.close();
```
这里使用`Environment.getExternalStorageDirectory()`获取外部存储的根目录路径,并创建`example.txt`文件进行写操作。
#### 读取外部存储
读取外部存储中的文件与内部存储类似,但需要确保已经获取了相应的读取权限。
```java
FileInputStream fis = new FileInputStream(Environment.getExternalStorageDirectory() + "/AndroidProject5/example.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
Log.d("FileReader", line);
}
br.close();
```
### 总结
在Android平台上进行文件读写操作,开发者需要熟悉文件存储的机制,包括内部存储和外部存储的使用方式,并掌握相关的API来进行文件的创建、读取、写入和删除操作。同时,开发者需要注意处理运行时权限请求,确保应用的稳定性与用户的隐私安全。通过上述实例代码的分析,可以对Android平台上的文件读写操作有一个全面的了解。
2013-11-04 上传
2015-03-24 上传
2022-07-13 上传
2021-10-19 上传
674 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
偶是不器
- 粉丝: 1152
- 资源: 16
最新资源
- DWR中文文档pdf
- ADHOC网络中的一种QOS_AWARE多径路由协议.pdf
- U—Boot及Linux2.6在S3C2440A平台上的移植方法
- Core+Java (Java核心技术卷1)
- stc89c51系列单片机使用手册
- Verilog 黄金参考指南
- Silverlight完美入门.pdf
- 领域驱动设计 domain driven design
- VLAN典型配置方案
- 02/03注册电气工程师模拟试题-模拟电子技术基础
- 关于操作反射的部分代码
- Ubuntu 参考手册
- 中国矿业大学电拖试题
- ASP.NET加密教程(MD5和SHA1加密几种方法)
- linux -shell手册
- 信息发布系统毕业论文 (asp+sql2000)