Android 存储中的内部存储和外部存储

卡尔曼滤波、互补滤波与Tsinghua滤波:平衡车姿态感知的三大算法对比 本文对比了平衡车姿态感知中的卡尔曼滤波、互补滤波与Tsinghua滤波三大核心算法。互补滤波计算简单,适合入门;卡尔曼滤波理论最优但实现复杂;Tsinghua滤波则是一种面向嵌入式优化的轻量级方案,通过动态权重调整和零偏估计,在资源受限的MCU上实现了性能与效率的平衡,是智能车竞赛等场景的实用选择。 阅读详情

文件的内部存储和文件的外部存储。

-0:部存储的默认的路径

内部私有目录

路径名如何得到
路径/data/data/包名/files通过getFilesDir可以得到,通过openFileInput 和openFileOutput 都是操作的这个文件夹
路径/data/data/包名/cache通过getCacheDir可以得到
路径/data/data/包名/app_app_hel通过getDir("app_hel",MODE_PRIVATE)可以得到,没有第一个参数的文件会自动创建,并且在前面添加一个app_
路径/data/data/包名/shared_prefs通过getSharedPreference可以得到。



1:外部存储程序的路径(不同的Android 版本,不一样的路径,可以查看Android 中外部存储在不同android版本上面的位置)

外部共有目录

路径名如何得到
共有的路径:   /mnt/sdcard通过Environment.getExternalStorageDirectory得到
公共文件夹 音乐文件夹的目录/mnt/sdcard/Music  通过Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)得到

外部私有目录:

路径名如何得到
 路径/mnt/sdcard/Android/data/包名/cache 通过getExternalCacheDir得到
 路径/mnt/sdcard/Android/data/包名/files通过getExternalFilesDir得到
 路径/mnt/sdcard/Android/data/包名/files/images通过getExternalFilesDir("images")得到


代码:

别忘了添加外部存储的权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

package tech.androidstudio.filedemo;

import android.content.SharedPreferences;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class MainActivity extends AppCompatActivity {

    private FileOutputStream fileOutputStream;
    private FileInputStream fileInputStream;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //***************************************内部存储****************************************
        Log.d("Kodulf", "***************************************内部存储**************************************** ");

        File filesDir = getFilesDir();
        File cacheDir = getCacheDir();
        //getDir如果不存在,那么创建) 一个文件夹,这个文件夹名称会拼接一个 app_,
        //所以下面新建的文件名是app_app_hello_file
        File app_hello_dir = getDir("app_hello_dir", MODE_PRIVATE);

        Log.d("Kodulf","getFilesDir() ="+filesDir.getPath());
        Log.d("Kodulf","getCacheDir() ="+cacheDir.getPath());
        Log.d("Kodulf", "getDir(\"app_hello_dir\", MODE_PRIVATE) =" + app_hello_dir.getPath());

        /**
         * 结果如下
         * Kodulf: filesDir 路径/data/data/tech.androidstudio.filedemo/files
         * Kodulf: cacheDir 路径/data/data/tech.androidstudio.filedemo/cache
         * Kodulf: app_hello_dir 路径/data/data/tech.androidstudio.filedemo/app_app_hel
         */



        //向files文件夹中的文件写东西:写入的路径为 filesDir的 路径/data/data/tech.androidstudio.filedemo/files
        try {
            fileOutputStream = openFileOutput("fileOutput", MODE_PRIVATE);
            String add = "向文件写东西";
            fileOutputStream.write(add.getBytes());
//                    下面的写法是错误的
//            fileOutputStream.write(Byte.parseByte("向文件写东西"));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileOutputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //从files文件夹中读取东西,读取的路径为 filesDir的 路径/data/data/tech.androidstudio.filedemo/files
        try {
            fileInputStream = openFileInput("fileOutput");
            byte[] bytes = new byte[1024];
            int bytesNumbers = fileInputStream.read(bytes);
            String getString = new String(bytes,0,bytesNumbers,"utf-8");
            Log.d("Kodulf","通过openFileInput(\"fileOutput\") 读取文件的内容为:"+getString);

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


        //通过SharePreference来存储++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

        //SharedPreference 常用来设置配置信息,例如当前的wifi 是否已经连接了,当前的存储路径,还有保存的用户名等等。
        //SharePreference 设置的时候存储的文件是一个xml的文件。文件格式就是hashmap的格式,
        //文件的访问模式,通常都是私有的。其他程序不允许查看,类似于qq的密码保存。
        //文件支持的数据结构,int string float long boolean String[],没有char类型。
        //文件的存储位置:/data/data/tech.androidstudio.sharepreferencedemo/shared_prefs

        SharedPreferences config_user = getSharedPreferences("config_User", MODE_PRIVATE);
        SharedPreferences.Editor edit = config_user.edit();
        edit.putString("username", "kodulf");
        edit.commit();
        //SharePreference 设置的时候存储的文件是一个xml的文件。例如这里会得到得到了下面的
        /**
         <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
         - <map>
         <string name="username">kodulf</string>
         </map>
         **/


        //通过SharedPreference来获取数据,
        // 注意这里直接使用的是 SharedPreference而不是 它的editor,
        //这里有点像 优快云的 文章,你读取的时候是不用编辑的editor的,你修改的时候才需要editor

        SharedPreferences config_user_read = getSharedPreferences("config_User", MODE_PRIVATE);
        String username = config_user_read.getString("username", "没有设置");
        Log.d("Kodulf","getSharedPereference 读取参数 username="+username);



        //***************************************外部存储****************************************
        Log.d("Kodulf","***************************************外部存储-外部共有目录**************************************** ");

        //获取外部存储的文件夹
        File directory = Environment.getExternalStorageDirectory();
        Log.d("Kodulf","Environment.getExternalStorageDirectory ="+directory.getPath());

        //获取外部存储的公共的 音乐文件夹
        File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC);
        Log.d("Kodulf", "Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) =" + externalStoragePublicDirectory.getPath());

        Log.d("Kodulf","***************************************外部存储-外部私有目录**************************************** ");
        //相当于内部存储的getCacheDir()
        File externalCacheDir = getExternalCacheDir();
        Log.d("Kodulf", "getExternalCacheDir =" + externalCacheDir.getPath());
        //File[] externalCacheDirs = getExternalCacheDirs(); API 19才有的

        //相当于内部存储的getFilesDir,或者openFileInput
        File externalFilesDir = getExternalFilesDir("images");
        Log.d("Kodulf","getExternalFilesDir ="+externalFilesDir.getPath());

    }
}



K210开发板学习笔记(三)——STM32+K210+SD卡实现人脸识别(完整K210代码) 更新日记:2022年4月26日 更新了串口通信部分的内容,本文写的略为粗糙,恐有不当之处,希望大家不吝赐教。 人脸识别 一、MaixPy IDE开发 参考博主晨少hc的博文(https://blog.youkuaiyun.com/HuangChen666/article/details/113995079)来实现人脸识别功能,我用的硬件是亚博智能的K210开发板,在配置工程中有几步和这个博主的不一样,需要注意。 所需要的文件有:模型文件),脚本文件,ide需要的bin文件... 阅读详情

相关推荐

ADS2023实战:2.4GHz超外差接收机从设计到链路预算全流程解析

本文以ADS 2023软件为平台,详细解析了2.4GHz超外差接收机从核心指标定义、架构原理到完整链路搭建与仿真的全流程。通过实战演练,重点阐述了如何利用ADS进行谐波平衡仿真和链路预算分析,以量化评估系统增益、噪声系数等关键性能,为射频工程师提供了一套从理论到仿真的系统级设计方法。

herb5的博客 817

Android Studio——DDMS查看内部&外部存储(踩坑...)

前言:近期专业设的Android的课学到了Android的内部和外部存储,结果由于和老师用的Eclipse开发环境的不同(我用的Android-Studio集成开发环境),所以踩了一些坑… 问题1:内部存储,查看不了data文件夹 解决方法: 切换到sdk安装目录,找到platforms-tools,鼠标聚焦到文件目录栏,输入cmd 回车,进入终端 输入命令 adb shell,回车,进入Li...

五柳 2443

避坑指南:HslCommunication连接西门子PLC时常见的5个错误及解决方法(S7-1200/S1500适用)

本文详细解析了使用HslCommunication连接西门子S7-1200/S1500 PLC时常见的5个错误及解决方法,包括基础连接配置、数据块读写异常、连接闪断、防火墙与权限问题以及高级调试技巧。通过实战案例和代码示例,帮助开发者快速定位和解决连接问题,提升工业自动化项目的开发效率。

weixin_30752699的博客 396

Android——文件存储之外部存储

在java中提供了一套完整的I/O流体系,通过这些I/O流可以很方便的访问磁盘上的文件内容。在Android也同样支持这种方式来访问手机存储器上的文件。 在Android中主要提供了两种方式用于访问手机存储器上的文件: 1、内部存储:使用FileOutputStream类提供的openFileOutput()方法和FileInputStream类提供的openFileInput()方法访问设备内部存储器上的文件。 2、外部存储:使用Environment类的getExternalStora...

优快云HAY的博客 4369

保姆级教程:用MATLAB搞定双目相机标定,从导入图片到参数解读全流程

本文提供了一份详细的MATLAB双目相机标定全流程指南,涵盖从图片准备到参数解读的每个环节。重点讲解了棋盘格选择、拍摄技巧、MATLAB工具箱设置及参数优化,帮助读者避免常见错误并提升标定精度。特别适合机器人导航、三维重建等领域的开发者。

weixin_33737134的博客 428

直升机空气动力学基础--005翼型的升阻比和气动力矩

焦点与翼型有关,总升力矩可以视为附加升力与零升力迎角升力的合成,对于对称翼型,零升力力矩为0,附加升力就是总升力,其焦点就是其压力中心。对于对称翼型,零升力力矩为0,对于非对称翼型,零升力力矩存在,与不对称度成正比。对于不对称翼型,升力对焦点的力矩保持不变。

ygf666的博客 4130

【Android Studio】更换.AndroidStudio和.gradle默认存储位置

本文针对:Window 开发环境C盘爆红了,公司电脑又不敢乱清,于是网上搜了一下,发现要么是图片,要么复制粘贴不全面,这里整理一下;首先关闭你正在运行的 Android Stduio。

该用户很懒, 没有写毛~~ 1万+

LabVIEW安装NI-DAQmx的方法(适合2021版和2022版)

LabVIEW安装NI-DAQmx的方法(适合2021版和2022版)

qq_65101190的博客 2万+

Android 获取外部存储权限

Android 11之后可能会遇到在创建文件或获取文件内容等时候,出现拒绝访问或无法打开等的权限问题,android.system.ErrnoException: open failed: EACCES (Permission denied),即使已经在清单文件和用户弹框申请并同意本地文件读写权限,以下两种方式可以尝试一下。1.首先在清单文件中添加读写权限,并在代码中添加系统申请权限弹框。2.SAF权限机制的优化,需要用户在系统设置中授权该应用。

AI_LWT的博客 4690

基于yolov5的鸟类图像准确识别

本项目主要基于yolov5进行鸟类准确识别,主要识别白鹭家族,红脚鹬,反嘴鹬,环颈珩,小白鹭以及夜鹭六类鸟

weixin_46064184的博客 3822

操作系统 | 知识梳理 | 复习(上)

操作系统复习

知识库搭建ing 3474

Android studio 读取文件显示文件路径和文件名

在Android Studio中读取文件并显示文件路径和文件名 在Android开发中,读取文件是一个常见的需求。无论是处理用户上传的文件,还是应用内部的配置文件,掌握如何读取文件并获取其路径和文件名都是开发过程中必不可少的技能。本篇文章将介绍如何在Android Studio中读取文件,并展示其路径和文件名,同时提供完整...

weixin_41359596的博客 1047

开源模型应用落地-qwen模型小试-Qwen3-8B-快速体验(一)

阿里云推出国内首个集成“快思考”与“慢思考”能力的 Qwen3-8B 大语言模型,以80亿参数和 128K 上下文支持,重塑AI应用边界并助力开发者高效部署

以微薄之力,予他人些许温暖. 2万+

Android中的内部存储和外部存储

外部存储指的是是公共的存储,这部分存储理论上是全局可见的,所有的应用都可以访问这部分数据,一般情况下,路径都是以/storage开头的,比如说/storage/emulated/0就是属于外部存储,这个路径的实际的挂载点是/data/media。这部分存储一般指的是/storage/emulated/0下面也就是/data/media挂载出来的)除去/storage/emulated/0/Android之外的所有路径,比如storage/emulated/0/Pictures这些文件夹。

qq_38996911的博客 5928

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Java文件内部存储_android中的文件操作详解以及内部存储和外部存储

其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理。根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念。相对路径和绝对路径在java中,关于相对路径和绝对路径是这样解释的,如果你很熟悉这部分以下灰色文字可以跳过:绝对路径是指书写文件的完整路径,例如d:\jav...

weixin_39966602的博客 416

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android中的内部存储和外部存储

https://www.jianshu.com/p/ad844547a43b

wwww_dong的博客 210

Android Studio——android中的文件操作详解以及内部存储和外部存储

原文链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0923/1557.html 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理。根据我的经验,初学者在这部分感到很容易混淆内部存储

oscar92420aaa的博客 3万+

android中的文件操作详解以及内部存储和外部存储

android中的文件操作详解以及内部存储和外部存储

Willian F的专栏 585

Android 中的内部存储和外部存储对应路径

系统:Android8.0 包名:com.shanghome.video.choicevideodemo 内部存储: getApplicationInfo().dataDir-------->/data/user/0/com.shanghome.video.choicevideodemo if (Build.VERSION.SDK_INT >= Buil...

shanghome的专栏 672

获取Android中的内部和外部数据存储目录

摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理。根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念。 相对 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对

rongwenbin的专栏 1196

Android设备中的内部存储和外部存储

所有的Android设备均有两个文件存储区域:"internal" 与 "external" 。 这两个名称来自于早先的Android系统,当时大多设备都内置了不可变的内存(internal storage)及一个类似于SD card(external storage)这样的可卸载的存储部件。之后有一些设备将"internal" 与 "external" 都做成了不可卸载的内置存储,虽然如此,但是这一整块还是从逻辑上有被划分为"internal"与"external"的。只是现在不再以是否可卸载进行区分了。

华清远见 | 程序员的学习天堂 1068

Android中的内部存储和外部存储复习

转载自:http://blog.youkuaiyun.com/androidwifi/article/details/17725989/ 摘要 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理。根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念。 相对

u014470404的博客 332

Android中的文件操作详解 【内部存储和外部存储】

其实安卓文件的操作和Java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理。根据我的经验,初学者在这部分感到很容易混淆内部存储和外部存储两个概念。 相对 其实安卓文件的操作和java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应...

Le_Sam的博客 4003
上一篇: Byte.parseByte报错java.lang.NumberFormatException: unable to parse '向文件写东西' as integer
下一篇: eclipse 是用来写客户端的,MyEclipse 是用来写服务器端的,谐音记忆法,My 买,买服务器这样就好记了。
千雅爸爸
博客等级 码龄18年 292粉丝 639原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值