文档章节

Android 文件操作

蜀山下的鱼
 蜀山下的鱼
发布于 2015/04/29 00:39
字数 581
阅读 5
收藏 0

1. 得到存储设备的目录:/SDCARD(一般情况下)

SDPATH=Environment.getExternalStorageDirectory()+"/";

2. 判断SD卡上的文件夹是否存在:通过File对象的exists()方法。

  /**
   * 判断文件是否已经存在;
   *
  /
  public boolean checkFileExists(String filepath) {
         File file=new File(SDPATH+filepath);
         return file.exists();
    }

3.在SD卡上创建目录:通过File对象的mkdir()方法实现。

  /*
   * 在SD卡上创建目录;
   */
  public File createDIR(String dirpath) {
    File dir=new File(SDPATH+dirpath);
    dir.mkdir();
    return dir;
}

4.在SD卡上创建文件:通过File对象的createNewFile()方法实现。
  /*
   * 在SD卡上创建文件;
   */
     public File createFile(String filepath) throws IOException{
      File file=new File(SDPATH+filepath);
           file.createNewFile();
           return file;
     }

5.将InputStream字节流写入到SD卡文件中
     /**
      * 将一个InputStream中的数据写入至SD卡中
      */
   public File writeStreamToSDCard(String dirpath,String filename,InputStream input) {
             File file = null;
             OutputStream output=null;
              try {
                  //创建目录;
                  createDIR(dirpath);
                  //在创建 的目录上创建文件;
                  file = createFile(dirpath+filename);
                  output=new FileOutputStream(file);
                  byte[]bt=new byte[4*1024];
                  while (input.read(bt)!=-1) {
                     output.write(bt);
                  }
                //刷新缓存,
                  output.flush();
              } catch (IOException e) {
                  e.printStackTrace();
              }
              finally{

                  try{
              output.close();
                  }
          catch (Exception e) {
                     e.printStackTrace();
                  }
              }

             return file;

    }


6. 访问的权限:
需在AndroidManifest中加上:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

 

 

 

 

判断SD卡是否插入

Environment.getExternalStorageState().equals(

android.os.Environment.MEDIA_MOUNTED);

获得sd卡根目录

File skRoot = Environment.getExternalStorageDirectory();

获得私有根目录

File fileRoot = Context.getFilesDir()+"";

确定或获得文件夹和文件路径

String path = File.getPath();//相对

String path = File.getAbsoultePath();//绝对

获得文件或文件夹的父目录

String parentPath = File.getParent()

获得文件或文件夹的名称:

String Name = File.getName();

建立文件或文件夹

File.createNewFile();//建立文件

判断是文件或文件夹

File.isDirectory()

列出文件夹下的所有文件和文件夹名

File[] files = File.listFiles();

修改文件夹和文件名

File.renameTo(dest);

删除文件夹或文件

File.delete();

文件读写操作模式

Context.MODE_PRIVATE:新内容覆盖原内容

Context.MODE_APPEND:新内容追加到原内容后

Context.MODE_WORLD_READABLE:允许其他应用程序读取

Context.MODE_WORLD_WRITEABLE:允许其他应用程序写入,会覆盖原数据。

/*** 保存文件

* @param fileName

* @param fileContent

* @throws Exception*/

public void save(String fileName, String fileContent) throws Exception {

// Activity的父类的父类就是context,context与其他框架中的context相同为我们以供了一些核心操作工具。

FileOutputStream fileOutputStream = this.context.openFileOutput(

fileName, Context.MODE_PRIVATE);

fileOutputStream.write(fileContent.getBytes());

}

/**

* 读取文件

*

* @param fileName

* @return

* @throws Exception

*/

public String read(String fileName) throws Exception {

FileInputStream fileInputStream = this.context.openFileInput(fileName);

ByteArrayOutputStream byteArray = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len = 0;

while ((len = fileInputStream.read(buffer)) > 0) {

byteArray.write(buffer, 0, len);

};

return byteArray.toString();

}

}

 

本文转载自:http://blog.csdn.net/caiwenfeng_for_23/article/details/12658647

蜀山下的鱼
粉丝 9
博文 405
码字总数 0
作品 0
广州
高级程序员
私信 提问
Android的备份服务概述

Android的备份服务被集成在Android的数据备份框架中,它被用来在运行Android2.2或更高版本的大多数设备上执行数据的备份和恢复的操作。在某些情况下,具体的Android设备上,针对备份服务可能...

长平狐
2012/10/16
87
0
Android 用户界面---操作栏(Action Bar 五)

设置操作栏的样式 如果你对应用程序中的可视构件进行了定制化的设计,那么你可能也会要对操作栏做一些重新设计,以便跟应用程序的设计匹配。要这样做的话,需要使用Android的样式与主题框架中...

长平狐
2012/10/16
798
0
AndroidManfest.xml文件详细说明

作者:梁晓禄 打开AndroidManfest.xml文件,代码如图,intent filter,描述了Activity启动的位置和时间。每当一个Activity要执行一个操作时,他将创建出一个Intent对象,这个对象能承载的信息...

晨曦之光
2012/03/14
206
0
Android Camera进程间通信类总结

《Android Camera架构》 《Android Camera进程间通信类总结》 《Android Camera模块解析之拍照》 《Android Camera模块解析之视频录制》 《Android Camera原理之CameraDeviceCallbacks回调模...

天王盖地虎626
07/21
18
0
又发现一个关于R文件丢失的问题

今天我打开项目时,一点clean发现r文件给丢失了,于是很自然的想到android fix之类的操作。但是死活都无法重新生成R文件。然后又是备份还原等操作,结果越来越乱,上baidu查方法都试过了就是...

postdep
2013/06/03
853
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
195
8
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
1
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
2
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
6
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部