Android 12 获取文件

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 对象来表示要读取的文件。然后,我们使用 FileInputStreamInputStreamReaderBufferedReader 来读取文件的内容。最后,我们将文件内容输出到日志中。

写入文件

要写入一个文件,在 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 对象来表示要写入的文件。然后,我们使用 FileOutputStreamOutputStreamWriterBufferedWriter 来将内容写入文件。

示例

下面是一个完整的示例,演示了如何在 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 写入