Java和Android文件操作
来源:互联网 发布:移除数组中的重复元素 编辑:程序博客网 时间:2024/06/09 17:02
File这是文件基类,抽象地代表一个文件实体,它有四个不同的构造方法:
File(File dir, String name)File(String path)
File(String dirPath, String name)
File(URI uri)
这些构造方法的实质都是一样的,就是构造一个File实例,必须提供一个完整的文件路径。
构造了一个File实例,并不是说就新建了一个文件或文件夹,这个File实例,只是实际系统内文件实体的一个代表。
重要方法:public boolean exists() 判断文件或文件夹是否存在
public boolean isFile() 判断是否为文件
public boolean isDirectory 判断是否为文件夹
public boolean createNewFile() 根据制定的路径和文件名创建一个新的,空的文件
public boolean mkdir() 根据制定的路径创建文件夹 (一级操作)
public boolean mkdirs() 根据制定的路径创建文件夹 (多级操作)
public boolean delete() 删除文件或文件夹
public boolean renameTo(File dest) 重命名文件或文件夹
public long length() 获得文件的长度,单位为 byte(文件夹不可用)
public String getName() 获得文件或文件夹的名字
public String getAbsolutePath() 获得文件或文件夹的绝对路径
pubic String getPath() 获得文件或文件夹的路径
public File[] listFiles() 返回文件夹内所有的File 对象
public String[] list() 返回文件夹内所有的文件或文件夹的名字
Android 应用内的文件存储机制:
Activity 提供了两个方法,可以分别获得基于字节的输入和输出流:
public FileOutputStream openFileOutput(String name, int mode) 获得输出流
public FileInputStream openFileInput(String name) 获得输入流
这两个方法都会在data/data/<applicatin-package>/files/ 来创建或读取文件,也就是说这是类似SharedPreference的,专门为一个应用内提供的文件存储机制。(默认情况下,不能在不同的应用之间共享)
mode有如下四种模式:
Use 0 or MODE_PRIVATE( the default operation) :用0表示默认值,只能够创建文件的应用程序访问该文件,每次文件写入为覆盖方式。
MODE_APPEND : 每次文件写入为追加方式,类似于StringBuffer中的append()方法。
MODE_WORLD_READABLE :只有读权限。
MODE_WORLD_WRITEABLE :只有写权限。
如果想同时得到读与写的权限,则可以在mode处通过如下方式创建:MODE_WORLD_READABLE+ MODE_WORLD_WRITEABLE
文件名过滤器一般用法
1.实现FilenameFilter接口;
2.实现boolean accept(File dir,String name); //dir表示文件的当前目录,name表示文件名;
class MyFilter implements FilenameFilter{
private String type; //type为需要过滤的条件,比如如果type=".jpg",则只能返回后缀为jpg的文件
public MyFilter(String type){
this.type = type;
}
public boolean accept(File dir,String name){ //返回true的文件则合格
}
}
android的文件操作要有权限:
判断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:允许其他应用程序写入,会覆盖原数据。
1、apk中有两种资源文件,使用两种不同的方式进行打开使用。
raw使用InputStream in = getResources().openRawResource(R.raw.test);
asset使用InputStream in = getResources().getAssets().open(fileName);
这些数据只能读取,不能写入。
2、SD卡中的文件使用FileInputStream和FileOutputStream进行文件的操作。
3、存放在数据区(/data/data/..)的文件只能使用openFileOutput和openFileInput进行操作。
注意不能使用FileInputStream和FileOutputStream进行文件的操作。
4、RandomAccess类仅限于文件的操作,不能访问其他IO设备。它可以跳转到文件的任意位置,从当前位置开始读写。
ErrnoException: open failed: EISDIR (Is a dir)
- Java和Android文件操作
- Android: JAVA 文件操作
- Android , Java 文件操作类
- java操作文件和文件夹
- java文件操作和流
- 【Android】文件操作工具类(FileUtil.java)
- Android(java)的xml文件操作
- Java与Android的文件读写操作
- Android之文件操作和JUnit
- 【Android】对文件和文件夹操作
- Android文件操作中的openFileOutPut和openFileInput
- java读写文件和字符串操作
- java文件和目录操作类代码
- JAVA对文件和文件夹的操作
- java 文件和文件夹操作(总结)
- java操作office和pdf文件
- Java生成和操作Excel文件
- Java生成和操作Excel文件
- 第21天dao模型二(更为精简)之泛型的反射
- POJ 3170 BFS 水题
- 设计模式学习(一) 单例模式
- 百度面试题1
- C语言 文件操作函数
- Java和Android文件操作
- 上传漏洞科普[3]-MIME验证
- 信息系统修改版 c语言 控制台版
- ubuntu12.04 下 利用 qemu kgdb 调试kernel
- hadoop hdfs2 Basic Filesystem Operations
- Two Sum
- Fragment 的生命周期及使用方法详解
- 关于PMO组织的项目启动会议的几点看法
- C++可变参数