Android开发中,离不开对文件的操作。本文首先介绍了使用java对文件进行基本的读写操作,而后介绍了Android中读取Assets与raw文件夹中的数据,最后介绍了Android中读写内部存储与外部存储。
一、文件的基本操作
java中file类的定义:An abstract representation of file and directory pathnames.
创建文件时,先实例化file类,再调用createNewFile方法
传入文件路径可以实例化file对象Filefile=newFile(FileUtil.FILE_NAME);
通过file.exists()可以判断文件是否存在,存在返回true//创建文件
file.createNewFile();
可以获取文件的各种属性
"文件名为:"+file.getName()"文件的绝对路径为"+file.getAbsolutePath()
//文件存放在工程根目录下,相对路径只有文件名
"文件的相对路径为"+file.getPath();
//文件大小,单位bytes,"文件大小为:"+file.length()+”字节"
"文件是否可读"+file.canRead()"文件是否可写"+file.canWrite()"文件是否隐藏"+file.isHidden()
文件重命名,调用renameTo()方法,需要传入File类作为参数Filefile=newFile(FileUtil.FILE_NAME);
FilenewFile=newFile("AnotherFile.txt");
file.renameTo(newFile);
文件重命名只针对文件本身,重命名后File对象不变,调用getName()会获得原值
删除文件,当文件存在时,调用delete()方法删除文件Filefile=newFile(FileUtil.FILE_NAME);
if(file.exists()){file.delete();}
创建文件夹,同样先实例化file类,然后调用mkDir或mkDirs方法进行文件夹的创建
//文件夹,创建多级目录时,不能使用"/"作为分隔符,会因为操作系统的不同而出现异常
//需要使用File.separator(File类中默认的分隔符)
publicstaticfinalStringFOLDER_NAME="NewFolder2"+File.separator+"SubFolder2”;
//当使用file.mkdir时,如果有任意一级的文件夹不存在时都不会完成创建,file.mkdir();
//使用mkdirs创建文件夹时,有文件夹时,创建下一级文件,否则先创建它本身,再创建下一级文件夹
file.mkdirs();创建时尽量使用mkDirs
删除文件夹,调用file.delete()方法
二、读取assets中的文件数据
assets目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制
用于储存较小的文件,可以有目录结构,也就是assets目录下可以再建立文件夹
assets文件夹下的文件不会被映射到R.java中