IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Android 外部存储与内部存储详解,腾讯T2亲自教你 -> 正文阅读

[大数据]Android 外部存储与内部存储详解,腾讯T2亲自教你

     setContentView(R.layout.activity_external);



    infoEdt = findViewById(R.id.info_edt);

    txt = findViewById(R.id.textView);

}



public void operate(View v) {

    String path = getExternalFilesDir(null).getAbsolutePath() + "/test.txt";

    Log.e("ExternalActivityTag", path);

    switch (v.getId()) {

        case R.id.save_btn:

            File file =  getExternalFilesDir(null);

            try {

                if (!file.exists()) {

                    file.createNewFile();

                }

                FileOutputStream fos = new FileOutputStream(path, true);

                String str = infoEdt.getText().toString();

                fos.write(str.getBytes());

            } catch (IOException e) {

                e.printStackTrace();

            }

            break;

        case R.id.read_btn:

            try {

                FileInputStream fis = new FileInputStream(path);

                byte[] b = new byte[1024];

                int len = fis.read(b);

                String str2 = new String(b, 0, len);

                txt.setText(str2);

            } catch (Exception e) {

                e.printStackTrace();

            }

            break;

    }

}

}




打印出来的具体位置如下所示(结合概述所讲内容可以知道这个目录我们可以在映射目录 sdcard 下面找到):  

![](https://img-blog.csdnimg.cn/img_convert/88f8113da13226480ca7fd630920a743.png)



[](

)2.5、注意

--------------------------------------------------------------------



利用 **getExternalFilesDir()** 和 **getExternalCacheDir()** 这两个方法来获取外部存储的私有目录是**不需要任何权限的**,但是如果用 **Environment.getExternalStorageDirectory()** 是需要外部存储的读写权限的,而且在 **Android 6.0** 之后,只在清单文件中声明是不够的,还需要运行时申请,即动态权限。



[](

)三、内部存储

====================================================================



[](

)3.1、概述

--------------------------------------------------------------------



首先,内部存储不是内存。在 **Android studio** 中,内部存储可以通过 **Device File Explorer** 找到,文件夹叫做 **data**,如果你想将文件存储于内部存储中,那么文件默认只能被你的应用访问到,且一个应用所创建的所有文件都在和应用包名相同的目录下。也就是说应用创建于内部存储的文件,与这个应用是关联起来的。当一个应用卸载之后,内部存储中的这些文件也被删除。



[](

)3.2、获取内部存储位置

--------------------------------------------------------------------------



我们可以通过 **getFileDir()** 和 **getCacheDir()** 这两个方法来获取内部存储的目录,它们位于 **data/data/包名/files(cache)** 下面,我们同样用外部存储的实例来演示一下,只是把数据存到内部存储中,因为实例效果是完全一样的,就不演示了,直接看代码(具体代码写法上跟外部存储有点不一样):



public class InternalActivity extends AppCompatActivity {

private EditText edt;

private TextView txt;



@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_internal);



    edt = findViewById(R.id.editText);

    txt = findViewById(R.id.textView);

}



public void operate(View v) {

    File file = new File(getFilesDir(), "getFilesDir.txt");

    switch (v.getId()) {

        case R.id.save_btn:

            try {

                if (!file.exists()) {

                    file.createNewFile();

                }

                FileOutputStream fos = new FileOutputStream(file);

                fos.write(edt.getText().toString().getBytes());

                fos.close();

            } catch (Exception e) {
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 23:59:23  更:2021-09-11 00:00:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:48:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码