• FileUtils类应该有哪些内容


    源码:https://github.com/kymjs/KJFrameForAndroid

    Environment类的使用:http://www.2cto.com/kf/201408/327215.html

    一、检查手机是否插入SD卡

    步骤:①通过Environment类获取手机状态,判断是否SD卡存在

    知识点:Environment类获取SD卡状态

    Android应用开发中,常使用Environment类去获取外部存储目录,在访问外部存储之前一定要先判断外部存储是否已经是可使用(已挂载&可使用)状态,
    并且需要在AndroidManifest.xml文件中添加外部存储读和写的权限。
    Environment类中提供了几个静态常量用于标识外部存储的状态,这些状态都是String类型
    MEDIA_BAD_REMOVAL 在没有挂载前存储媒体已经被移除。
    MEDIA_CHECKING 正在检查存储媒体。
    MEDIA_MOUNTED 存储媒体已经挂载,并且挂载点可读/写。
    MEDIA_MOUNTED_READ_ONLY 存储媒体已经挂载,挂载点只读。
    MEDIA_NOFS 存储媒体是空白或是不支持的文件系统。
    MEDIA_REMOVED 存储媒体被移除。
    MEDIA_SHARED 存储媒体正在通过USB共享。
    MEDIA_UNMOUNTABLE 存储媒体无法挂载。
    MEDIA_UNMOUNTED 存储媒体没有挂载。
    可以通过静态方法getExternalStorageState()来获取外部存储的状态,如果程序需要在外部存储里面读写数据,必须要先判断:
    
    if(Environment.MEDIA_MOUNTED.equals(
    Environment.getExternalStorageState()) 
    || !Environment.isExternalStorageRemovable())
    然后,添加外部存储读和写的权限:
    
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission></uses-permission>
    可获得SD卡的状态参数

    二、获取SD卡路径

    步骤:调用Environment类获取SD卡路径。

    知识点:Environment类能够获取的文件句柄

    ①、公共的文件夹的句柄(例:相机拍摄标准目录、电影存放标准目录等)

    调用:
    Environment.getExternalStoragePublicDirectory(type);
    type类指:
    DIRECTORY_ALARMS 系统提醒铃声存放的标准目录。
    DIRECTORY_DCIM 相机拍摄照片和视频的标准目录。
    DIRECTORY_DOWNLOADS 下载的标准目录。
    DIRECTORY_MOVIES 电影存放的标准目录。
    DIRECTORY_MUSIC 音乐存放的标准目录。
    DIRECTORY_NOTIFICATIONS 系统通知铃声存放的标准目录。
    DIRECTORY_PICTURES 图片存放的标准目录
    DIRECTORY_PODCASTS 系统广播存放的标准目录。
    DIRECTORY_RINGTONES 系统铃声存放的标准目录。
    公共文件夹的句柄

    ②、SD卡路径,系统路径等路径

    static File getDataDirectory() 获得data的目录(/data)。
    static File getDownloadCacheDirectory() 获得下载缓存目录。(/cache)
    static File getExternalStorageDirectory() 获得外部存储媒体目录。(/mnt/sdcard or /storage/sdcard0)
    static File getRootDirectory() 获得系统主目录(/system)
    获取各个路径的方法

    题外话:当使用LruCache和DiskCahce的时候必不可少需要用到,缓存文件夹(当app卸载会被删除掉)

    所以缓存文件夹的路径(获取的都是绝对路径):

    context.getCacheDir() 获取应用程序自己的缓存目录
    context.getExternalCacheDir() 获取应用程序在外部存储的存储目录

    三、获取所需文件夹的句柄

    步骤:①、获取文件夹句柄   ②、判断该文件夹是否存在,存在则返回绝对路径,不存在则创建文件夹。

    知识点:File文件夹的创建、File文件的创建、File对象本身代表的意义是什么。   利用File.seperate产生"/"分隔符。

    四、获取文件的路径

    步骤:①、首先判断该文件路径上的文件夹是否存在  ②、创建文件的句柄  ③、判断文件是否存在,若不存在则创建该文件  ④、最后返回file

    五、将InputStream流转换为byte[]数组

    步骤:1、判断inputStream是否不为null 2、将inputStream套上ButteredInputStream(提高效率) 3、创建ByteOutputStream流(将inputStream的数据写入内存中,然后在拿出)4、将inputStream的数据写入ByteOutputStream

    知识点:①、流的装饰类种类和使用

    六、统一关闭流的方法

    步骤 1、将输入参数设置为可变输入参数:Closeable ... closeables  (Closeable是关闭流的接口,流都继承了该接口)  2、判断closeables是否不为null 3、用foreach循环遍历closeable,并关闭流。

    知识点:①、流继承closeable接口,用来关闭流本身  ②、foreach循环的条件是  继承Iterable接口的类 或者是数组

    七、将Bitmap转换成文件

    步骤  1、判断Bitmap和文件路径是否为null  2、创建文件(首先创建文件夹、之后才创建文件) 3、获取文件流,为提高效率,使用BufferedOutputStream装饰类封装  4、调用bitmap.compress() 能够将bitmap 压缩并导入到文件中.

    Bitmap.compress()方法的参数format可设置JPEG或PNG格式;quality表示压缩率(0~100  100是不压缩,30是压缩70% 倒推);fOut是输出流(文件输出流)

     使用图:

    知识点:1、最好每个流都用Buffered封装一下。  2、bitmap.compress()的使用,将图片输出到文本。  3、利用String分割路径

    八、将inputStream转换成输出string(input2String())

    步骤:1、判断inputstrem是否存在  2、利用BufferedReader、InputStreamReader 封装inputStream  3、利用StringBuilder接收数据

    4、返回数据

    知识点:1、StringBuilder与StringBuffer的区别

    九、获取file文件中的数据(readFile(File file))

    步骤:1、判断文件是否为null 2、判断文件是否存在  3、获取文件输入流  4、交给inputToString()方法处理。

  • 相关阅读:
    android:ViewPager实现Tabs滑动切换效果
    android:实现退出确认对话框
    jsp初探
    struts2获取前台数据的三种方式
    struts表单验证
    SingleTon
    读取文件中内容并统计排序
    android:TabHost总结
    java i/o
    tomcat7.0连接池配置
  • 原文地址:https://www.cnblogs.com/rookiechen/p/5727600.html
Copyright © 2020-2023  润新知