Android 12 获取文件
Android 12 是 Google 推出的最新版本的 Android 操作系统。它带来了许多新功能和改进,其中之一是更简便地获取文件。在本文中,我们将介绍如何在 Android 12 中使用新的文件获取 API 来读取和写入文件。
文件获取 API
Android 12 引入了一个新的文件获取 API,旨在简化文件的读取和写入操作。通过这个 API,我们可以轻松地从设备的存储中读取和写入文件,而不必处理权限和复杂的代码。
读取文件
要读取一个文件,在 Android 12 中,我们只需要使用 readFile()
方法即可。下面是一个简单的例子:
String fileName = "example.txt";
File file = new File(fileName);
try {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
String fileContent = sb.toString();
br.close();
isr.close();
fis.close();
Log.d("FileContent", fileContent);
} catch (IOException e) {
e.printStackTrace();
}
在上面的代码中,我们首先创建一个 File
对象来表示要读取的文件。然后,我们使用 FileInputStream
、InputStreamReader
和 BufferedReader
来读取文件的内容。最后,我们将文件内容输出到日志中。
写入文件
要写入一个文件,在 Android 12 中,我们可以使用 writeFile()
方法。下面是一个简单的例子:
String fileName = "example.txt";
String fileContent = "Hello, World!";
File file = new File(fileName);
try {
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write(fileContent);
bw.close();
osw.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
在上面的代码中,我们首先创建一个 File
对象来表示要写入的文件。然后,我们使用 FileOutputStream
、OutputStreamWriter
和 BufferedWriter
来将内容写入文件。
示例
下面是一个完整的示例,演示了如何在 Android 12 中读取和写入文件:
public class MainActivity extends AppCompatActivity {
private static final String FILE_NAME = "example.txt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 读取文件
readFile();
// 写入文件
writeFile();
}
private void readFile() {
File file = new File(getFilesDir(), FILE_NAME);
try {
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
sb.append("\n");
}
String fileContent = sb.toString();
br.close();
isr.close();
fis.close();
Log.d("FileContent", fileContent);
} catch (IOException e) {
e.printStackTrace();
}
}
private void writeFile() {
File file = new File(getFilesDir(), FILE_NAME);
String fileContent = "Hello, World!";
try {
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
bw.write(fileContent);
bw.close();
osw.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的代码中,我们首先在 onCreate()
方法中调用了 readFile()
和 writeFile()
方法来演示如何读取和写入文件。在 readFile()
方法中,我们使用 getFilesDir()
方法来获取应用的私有目录,并在该目录下创建一个文件。在 writeFile()
方法中,我们将字符串 "Hello, World!" 写入文件中。
演示
下面是一个使用 mermaid 语法的旅行图,展示了在 Android 12 中获取文件的过程:
journey
title 获取文件
section 读取文件
App -> File: 打开文件
File -> Storage: 读取文件
Storage --> File: 返回文件内容
File --> App: 返回文件内容
section 写入