Android文件读写操作与实例代码解析

0 下载量 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平台上的文件读写操作有一个全面的了解。