在Android设备上软件读写SD卡的步骤如下:
检查SD卡状态
使用`Environment.getExternalStorageState()`方法检查SD卡是否已插入并且应用程序具有读写SD卡的权限。
```java
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
// SD卡已插入
}
```
获取SD卡路径
调用`Environment.getExternalStorageDirectory()`方法获取外部存储器(SD卡)的目录。
```java
File sdCardDir = Environment.getExternalStorageDirectory();
```
创建文件输入输出流
使用`FileInputStream`、`FileOutputStream`、`FileReader`和`FileWriter`类来读写SD卡上的文件。
写文件:
```java
try {
File myfile = new File(sdCardDir, "MyDemo.txt");
OutputStream os = new FileOutputStream(myfile);
os.write("hello".getBytes());
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
```
读文件:
```java
try {
File myfile = new File(sdCardDir, "MyDemo.txt");
InputStream file = new FileInputStream(myfile);
byte[] b = new byte[(int)myfile.length()];
file.read(b);
Log.d(TAG, new String(b));
} catch(Exception e){
e.printStackTrace();
}
```
添加权限
在应用程序的清单文件(`AndroidManifest.xml`)中添加读写SD卡的权限。
```xml
```
注意事项:
权限管理:从Android 6.0(API级别23)开始,应用程序需要在运行时请求`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限。可以使用`ActivityCompat.requestPermissions()`方法来请求权限。
每个应用程序的目录:每个应用程序只能读写自己的目录,而不能读写其他应用程序的目录。SD卡的根目录(`/sdcard`)是特殊的,所有应用程序都可以访问,但通常不建议直接操作它,因为这可能会影响其他应用程序和系统的稳定性。
示例代码: