Android Studio 将字符串写入本地文件的操作方法
在 Android 应用开发中,经常需要将用户输入的数据或程序生成的日志保存到设备本地。本文将详细介绍如何在 Android Studio 中使用 Java 语言,通过 IO 流操作将字符串写入本地文件(包括 SD 卡及内部存储),并涵盖权限申请、文件读取与删除的完整流程。
一、权限配置与动态申请
从 Android 6.0 (API Level 23) 开始,系统引入了运行时权限机制。对于读写外部存储(SD 卡)的操作,除了需要在 AndroidManifest.xml 中声明权限外,还需要在代码中进行动态申请。
1. Manifest 声明
在 AndroidManifest.xml 中添加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
注意:在 Android 10 (API Level 29) 及以上版本,由于作用域存储(Scoped Storage)的限制,直接访问公共目录的方式受到限制。建议优先使用应用私有目录,若必须访问公共目录,请确保符合相关规范。
2. 运行时权限检查
在 Activity 中实现权限检查逻辑。以下代码展示了如何判断权限状态并在需要时发起请求。
private static final int CODE_READ_SMS = 1001;
private static final String TAG = "FileIOExample";
private void checkPermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { // 6.0 以上
int permissionWrite = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int ActivityCompat.checkSelfPermission(, Manifest.permission.READ_EXTERNAL_STORAGE);
(permissionWrite != PackageManager.PERMISSION_GRANTED && permissionRead != PackageManager.PERMISSION_GRANTED) {
Log.e(TAG, );
(ActivityCompat.shouldShowRequestPermissionRationale(, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
Log.e(TAG, );
ActivityCompat.requestPermissions(,
[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, CODE_READ_SMS);
} {
Log.e(TAG, );
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
} {
Log.e(TAG, );
}
} {
Log.e(TAG, );
}
}
{
.onRequestPermissionsResult(requestCode, permissions, grantResults);
(requestCode == CODE_READ_SMS) {
(grantResults.length > && grantResults[] == PackageManager.PERMISSION_GRANTED) {
Log.e(TAG, );
} {
Log.e(TAG, );
Toast.makeText(MainActivity., , Toast.LENGTH_SHORT).show();
}
}
}


