Android保存数据到外部存储器_android studio将文件保存到外部存储器-程序员宅基地

技术标签: 数据  android  存储  第一篇博客  

Android保存数据到外部存储器

By HuHongbin, 2016/11/29

Android怎么写文件到外部存储器呢,使用的方法主要还是Java.io.file里面的方法,在Android中稍稍有些改变。

第一步:添加权限     
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 Caution:目前,所有的apps都可以在不指定某个专门的权限下做读external storage的动作。但这在以后的安卓版本中会有所改变。如果我们的app只需要读的权限(不是写), 那么将需要声明READ_EXTERNAL_STORAGE 权限。为了确保app能持续地正常工作,我们现在在编写程序时就需要声明读权限。

 第二步:在外部存储器中创建一个新的目录(先检查外部存储是否可用)     
/* Checks if external storage is available for read and write */
    public boolean isExternalStorageWritable() {
      String state = Environment.getExternalStorageState();
      if (Environment.MEDIA_MOUNTED.equals(state)) {
            return true;
      }
      return false;
    }

    /* Get a file object using getExternalStoragePublicDirectory() */
    public File getAlbumStorageDir(String albumName) {
      // Get the directory for the user's public datafiles directory.
      File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS),albumName);
      if (!file.exists()) {
            file.mkdirs();
        }
      return file;
    }

第三步:创建一个文件对象 File dataFile = new File(file, fileName);:将数据写入文件(用字符流或者字节流)

     try {
            if (!dataFile.exists()) {
                  dataFile.createNewFile();
            }
            FileWriter mFileWriter = new FileWriter(dataFile,true);
            BufferedWriter mBufferedWriter = new BufferedWriter(mFileWriter);
            mBufferedWriter.write("DATA_STRINGS_TO_WRITE"+"\n");
            mBufferedWriter.close();
      } catch(IOException e) {
            Log.e("FILE", "DataFileWriter Error!");
      }
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/nierzilaoma/article/details/53391777

智能推荐

u-boot的Makefile文件详解_mpc5200b u-boot-1.2-程序员宅基地

文章浏览阅读632次。## (C) Copyright 2000-2006# Wolfgang Denk, DENX Software Engineering, [email protected].## See file CREDITS for list of people who contributed to this# project.## This program is free software; you ca..._mpc5200b u-boot-1.2

Java多线程的4种实现方式_线程的实现方式-程序员宅基地

文章浏览阅读1.5w次,点赞9次,收藏63次。Java多线程的4种实现方式1:继承Thread并重写run方法,并调用start方法/** * Java实现多线程的方式1 * 继承Thread类,重写run方法 * @author hongbo.zhao 2019年4月12日 上午7:12:35 */class MyThread extends Thread { @Override public void run() {..._线程的实现方式

【IOS自动化解放双手系列一】unity3D导出xcode 工程并配置各种权限_unity ios 调用 processstartinfo-程序员宅基地

文章浏览阅读3.6k次。打包是程序员必经之路。如何实现自动化是一个程序员的基本素质。(都是因为我懒,哈哈哈)。 打包分一下几个部分 : 1、unity3D导出xcode 工程 2、配置xcode配置及各种sdk配置 3、命令行打包 4、上传蒲公英 5、上传bugly先把架子搭好 今天没时间了 明天写..._unity ios 调用 processstartinfo

关于String类的一些理解-程序员宅基地

文章浏览阅读877次,点赞24次,收藏7次。如果大于s的字符序列,该方法返回正值;注:关系表达式“tom==jerry”的值是 false,因为String对象tom、jerry中存放的是引用,String 对象调用 public boolean equalslgnoreCase(String s)比较当前St对象的字符序列与参数指定的String 对象 s的字符序列是否相同,比较时忽略大小写。String对象调用equals(String s)方法化较当前String对象的字符序列是否与参数s指定的String对象的字符序列相回,

京东接口推荐:京东商品sku属性数据接口-程序员宅基地

文章浏览阅读261次,点赞5次,收藏4次。在使用京东商品详情数据接口时,需要确保遵守京东开放平台的使用规则和限制,合法合规地使用接口,以保障业务的顺利进行。1.请求方式:HTTP POST GET;复制Taobaoapi2014获取APISDK文件。JD.item_sku-获取京东商品sku属性数据接口返回值说明。请求参数:num_iid=10335871600。参数说明:num_iid:JD商品ID。获取API测试账号。

【图像超分辨率重建】——EDSR论文精读笔记_edsr psnr-程序员宅基地

文章浏览阅读3.5k次,点赞4次,收藏32次。图像超分辨率重建EDSR模型论文精读_edsr psnr

随便推点

es6 解构赋值 扩展运算符 字符串模板 等,JavaScript的算数运算符与比较运算符-程序员宅基地

文章浏览阅读510次,点赞7次,收藏22次。资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。[外链图片转存中…(img-yjZrs2yt-1712098273968)][外链图片转存中…(img-0zxWJvlP-1712098273968)]资料过多,篇幅有限,需要文中全部资料可以点击这里免费获取前端面试资料PDF完整版!自古成功在尝试。不尝试永远都不会成功。勇敢的尝试是成功的一半。

iview template模式_iview render的使用-程序员宅基地

文章浏览阅读819次。新手使用iview表格中的render也许会遇到的问题iview的使用和element-ui相似。但在表格中控件的使用上两者有很大不同。element-ui在表格中是用插槽渲染模板,而iview是使用传统的render渲染HTML页面。使用element-ui的好处是,它相对比较成熟,也就是所谓的坑少功能强。但是在表格中使用控件(Select, input, button, switch等)时,由..._iview render中使用template

java 内存 垃圾回收调优-程序员宅基地

文章浏览阅读192次。要了解Java垃圾收集机制,先理解JVM内存模式是非常重要的。今天我们将会了解JVM内存的各个部分、如何监控以及垃圾收集调优。Java(JVM)内存模型正如你从上面的图片看到的,JVM内存被分成多个独立的部分。广泛地说,JVM堆内存被分为两部分——年轻代(YoungGeneration)和老年代(Old Generation)。年轻代年轻代是所有新对象产生的地方。..._java eu 回收频繁

第十周周报_valueerror: input image size (img_size) should be -程序员宅基地

文章浏览阅读624次。第十周周报_valueerror: input image size (img_size) should be divisible by stage-wise im

第二周作业-程序员宅基地

文章浏览阅读421次,点赞5次,收藏10次。f --file= # 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。-A --after-context= # 除了显示符合范本样式的那一行之外,并显示该行之后的内容。-C --context=或- # 除了显示符合范本样式的那一列之外,并显示该列之前后的内容。每张磁片的正反两面各有一个磁头,一个磁头对应一张磁片的一个面。

Linux驱动入门总结_static ssize_t led_read(struct-程序员宅基地

文章浏览阅读713次。Linux驱动入门总结 1. linux用户空间和内核空间.用户空间:包含用户编写的应用软件,c库整个4g的虚拟地址空间,用户空间包含了0-3g。1用户不能访问内核的地址空间,包括代码和数据,不能直接操作硬件2.用户程序访问硬件通过系统调用和硬件中断来实现访问和两者数据转移。3.用户和内核都有自己独立的栈。内核空间:包含驱动,文件系统,平台代码等等,内核空间包含_static ssize_t led_read(struct

推荐文章

热门文章

相关标签