在 Android 中,写入二级存储通常指写入 SD 卡。以下是一个简单的示例代码,用于在 SD 卡上写入一个文本文件:
// 检查 SD 卡是否可用
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
// 获取 SD 卡根目录路径
File sdCard = Environment.getExternalStorageDirectory();
// 在 SD 卡根目录下创建一个名为 "myFile.txt" 的文本文件
File file = new File(sdCard.getAbsolutePath() + "/myFile.txt");
try {
FileWriter fileWriter = new FileWriter(file);
fileWriter.write("hello world");
fileWriter.close();
Log.d("TAG", "文件已成功写入!");
} catch (IOException e) {
e.printStackTrace();
}
} else {
Log.e("TAG", "SD 卡不可用!");
}
此代码使用 Environment.getExternalStorageDirectory()
方法获取 SD 卡根目录路径,并在该路径下创建一个名为 myFile.txt
的文本文件。然后,通过 FileWriter 写入 “hello world” 字符串,并在文件关闭后记录日志。
请注意,为了在 Android 上访问 SD 卡,您需要在 AndroidManifest.xml 文件中添加存储权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Android 写入二级存储通常需要以下步骤:
- 获取文件读写权限(仅适用于 Android 6.0 以上版本):
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
}
- 创建文件对象并打开文件输出流:
File file = new File(Environment.getExternalStorageDirectory(), "test.txt");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
}catch (FileNotFoundException e) {
e.printStackTrace();
}
- 写入数据:
String data = "hello world";
try {
fos.write(data.getBytes());
}catch (IOException e) {
e.printStackTrace();
}
- 关闭输出流:
try {
fos.close();
}catch (IOException e) {
e.printStackTrace();
}
完整的代码示例:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_WRITE_STORAGE);
}
File file = new File(Environment.getExternalStorageDirectory(), "test.txt");
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
}catch (FileNotFoundException e) {
e.printStackTrace();
}
String data = "hello world";
try {
fos.write(data.getBytes());
}catch (IOException e) {
e.printStackTrace();
}
try {
fos.close();
}catch (IOException e) {
e.printStackTrace();
}
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/156416.html