您的位置:

Android DA存储路径详解

一、概述

在Android手机使用中,我们需要存储很多数据,如图片、音频、视频、文本等数据。对于这些数据的存储路径,需要我们清楚地了解,这样才能让我们更高效地管理和使用这些数据,以免在开发中出现意外情况。

本文将详细介绍Android DA存储路径及使用方法,让大家能够更加深入地了解这一方面的知识。

二、内部存储

内部存储就是指内部存储器,也称为应用程序私有存储。每个应用程序都会有自己的私有目录,其他应用程序无法访问。内部存储分为两种存储方式:文件存储和SharedPreferences存储。

1.文件存储

文件存储是在内部存储路径下的files目录中创建文件夹,并在该文件夹中创建对应文件,并将数据写入该文件。具体路径为:

    /data/data/应用程序包名/files/文件夹名/文件名

其中,应用程序包名是指应用程序在安装时分配的包名。

下面是一个具体的例子。

    public void writeToFile(String folderName, String fileName, String content){
        String path = this.getFilesDir().getPath() + "/" + folderName + "/";
        File folder = new File(path);
        if (!folder.exists()) {
            folder.mkdirs();
        }
        try {
            FileOutputStream outputStream = new FileOutputStream(path + fileName);
            outputStream.write(content.getBytes());
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

这段代码中的getFilesDir()方法可以获取当前应用程序私有目录,然后我们在该目录下创建文件夹,然后在该文件夹下创建所需文件并写入数据。这里需要注意的是,getFilesDir()方法返回的是一个File对象,需要使用getPath()方法获取该路径。

2.SharedPreferences存储

SharedPreferences存储是Android系统中一个轻量级的存储方式,以键值对的方式存入数据。SharedPreferences存储的数据保存在以下路径中:

    /data/data/应用程序包名/shared_prefs/文件名.xml

下面是一个具体的例子。

    public void saveValue(String key, String value){
        SharedPreferences sharedPreferences = getSharedPreferences("mySharedPreferences", MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(key, value);
        editor.commit();
    }

这段代码中,我们通过getSharedPreferences()方法获取一个SharedPreferences对象,并通过该对象的edit()方法获取一个Editor对象,通过putString()方法存储键值对数据,并通过commit()方法提交修改。需要注意的是,在存储多个键值对时可以使用apply()方法提交修改,apply()方法会将修改提交到内存中异步执行,不会阻塞主线程。

三、外部存储

外部存储就是指存储在SD卡和其他外部存储设备上的数据。Android系统提供了多种外部存储路径,如SD卡、USB存储器等。在使用外部存储时,需要注意用户授权操作,否则可能会出现文件读写失败等情况。

1.存储在SD卡上

在Android系统中,SD卡的路径一般为/storage/sdcard,但实际上,不同厂商、不同型号的设备,其SD卡的路径也可能会不同。因此,对于存储在SD卡上的数据,需要动态获取路径名。

    public String getSDPath(){
        String path = "";
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            path = Environment.getExternalStorageDirectory().getAbsolutePath();
        }
        return path;
    }

在获取了SD卡路径后,我们就可以在该路径下创建文件夹并存储文件了。

2.存储在其他外部存储设备上

对于存储在其他外部存储设备上的数据,与存储在SD卡上非常相似,只需要将路径名改为对应的外部存储设备路径即可。

    public String getUsbPath(){
        String path = "";
        String usbPath="/storage/usb";
        String cmd="mount";
        Runtime run = Runtime.getRuntime();
        try {
            Process p = run.exec(cmd);
            InputStreamReader isr = new InputStreamReader(p.getInputStream());
            BufferedReader br = new BufferedReader(isr);
            String line;
            while ((line = br.readLine()) != null) {
                if (line.contains(usbPath)
                        && (line.contains("vfat") || line.contains("ntfs") ||      line.contains("exfat"))) {
                    String[] temp = line.split(" ");
                    for (int i = temp.length - 1; i >= 0; i--) {
                        if (temp[i].contains(usbPath)) {
                            path = temp[i];
                            break;
                        }
                    }
                }
            }
            isr.close();
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return path;
    }

这段代码首先动态获取了USB存储设备的路径,然后和存储在SD卡上的数据一样就可以进行文件存储了。

四、总结

本文详细介绍了Android系统中的DA存储路径及使用方法。对于开发移动应用的开发人员来说,深入了解存储路径的知识是至关重要的。当然,除了本文介绍的存储方式外,还有其他的存储方式,如SQLite数据库、网络存储等,希望读者们也能够深入掌握。

Android DA存储路径详解

2023-05-14
Android Studio中修改Gradle的路径

2023-05-14
Android Studio 设置NDK路径

2023-05-14
android缓存htmljs,Android缓存 Xama

本文目录一览: 1、android 怎样获取webview的缓存 2、android不清缓存js不生效,js调用不到是为什么?求大神帮忙 3、Android的webview里怎么用HttpRespon

2023-12-08
Android文档详解

2023-05-18
安装Android Studio时需要配置的JDK路径

2023-05-14
Android保存图片到相册

2023-05-17
Android存储权限详解

2023-05-18
解决Android SDK路径无法定位的方法

2023-05-14
Python实现Android Uri获取文件路径的方法

2023-05-14
Android实现保存图片到相册的方法

2023-05-14
学习Android的必备路径:从入门到精通

2023-05-16
Android文件存储方案详解:内部存储、外部存储、SQLi

在Android开发中,文件读写是一项基本操作,为了支持文件的读写操作,Android系统提供了多种文件存储方式,如内部存储、外部存储和SQLite数据库等。本文将详细介绍这些文件存储方式的特点、使用

2023-12-08
Android Uri转File详解

2023-05-18
Android开发中,最重要的文件路径是什么?

2023-05-14
阿里云笔记的功能与使用详解

2023-05-21
印象笔记记录java学习(Java成长笔记)

2022-11-12
如何在Android中获取和设置存储权限

2023-05-14
Android Realm数据存储框架的详细介绍

2023-05-18
Android Studio APK签名方法与步骤详解

2023-05-14