Android 文件操作


package otheri.common;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import otheri.io.Input;import otheri.io.Output;import android.content.Context;import android.os.Environment;public class FileHelper {private Context context;private String SDPATH;private String FILESPATH;public FileHelper(Context context) {this.context = context;SDPATH = Environment.getExternalStorageDirectory().getPath() + "//";FILESPATH = this.context.getFilesDir().getPath() + "//";}/** * 在SD卡上创建文件 *  * @throws IOException */public File creatSDFile(String fileName) throws IOException {File file = new File(SDPATH + fileName);file.createNewFile();return file;}/** * 删除SD卡上的文件 *  * @param fileName */public boolean delSDFile(String fileName) {File file = new File(SDPATH + fileName);if (file == null || !file.exists() || file.isDirectory())return false;file.delete();return true;}/** * 在SD卡上创建目录 *  * @param dirName */public File creatSDDir(String dirName) {File dir = new File(SDPATH + dirName);dir.mkdir();return dir;}/** * 删除SD卡上的目录 *  * @param dirName */public boolean delSDDir(String dirName) {File dir = new File(SDPATH + dirName);return delDir(dir);}/** * 修改SD卡上的文件或目录名 *  * @param fileName */public boolean renameSDFile(String oldfileName, String newFileName) {File oleFile = new File(SDPATH + oldfileName);File newFile = new File(SDPATH + newFileName);return oleFile.renameTo(newFile);}/** * 拷贝SD卡上的单个文件 *  * @param path * @throws IOException */public boolean copySDFileTo(String srcFileName, String destFileName)throws IOException {File srcFile = new File(SDPATH + srcFileName);File destFile = new File(SDPATH + destFileName);return copyFileTo(srcFile, destFile);}/** * 拷贝SD卡上指定目录的所有文件 *  * @param srcDirName * @param destDirName * @return * @throws IOException */public boolean copySDFilesTo(String srcDirName, String destDirName)throws IOException {File srcDir = new File(SDPATH + srcDirName);File destDir = new File(SDPATH + destDirName);return copyFilesTo(srcDir, destDir);}/** * 移动SD卡上的单个文件 *  * @param srcFileName * @param destFileName * @return * @throws IOException */public boolean moveSDFileTo(String srcFileName, String destFileName)throws IOException {File srcFile = new File(SDPATH + srcFileName);File destFile = new File(SDPATH + destFileName);return moveFileTo(srcFile, destFile);}/** * 移动SD卡上的指定目录的所有文件 *  * @param srcDirName * @param destDirName * @return * @throws IOException */public boolean moveSDFilesTo(String srcDirName, String destDirName)throws IOException {File srcDir = new File(SDPATH + srcDirName);File destDir = new File(SDPATH + destDirName);return moveFilesTo(srcDir, destDir);}/* * 将文件写入sd卡。如:writeSDFile("test.txt"); */public Output writeSDFile(String fileName) throws IOException {File file = new File(SDPATH + fileName);FileOutputStream fos = new FileOutputStream(file);return new Output(fos);}/* * 在原有文件上继续写文件。如:appendSDFile("test.txt"); */public Output appendSDFile(String fileName) throws IOException {File file = new File(SDPATH + fileName);FileOutputStream fos = new FileOutputStream(file, true);return new Output(fos);}/* * 从SD卡读取文件。如:readSDFile("test.txt"); */public Input readSDFile(String fileName) throws IOException {File file = new File(SDPATH + fileName);FileInputStream fis = new FileInputStream(file);return new Input(fis);}/** * 建立私有文件 *  * @param fileName * @return * @throws IOException */public File creatDataFile(String fileName) throws IOException {File file = new File(FILESPATH + fileName);file.createNewFile();return file;}/** * 建立私有目录 *  * @param dirName * @return */public File creatDataDir(String dirName) {File dir = new File(FILESPATH + dirName);dir.mkdir();return dir;}/** * 删除私有文件 *  * @param fileName * @return */public boolean delDataFile(String fileName) {File file = new File(FILESPATH + fileName);return delFile(file);}/** * 删除私有目录 *  * @param dirName * @return */public boolean delDataDir(String dirName) {File file = new File(FILESPATH + dirName);return delDir(file);}/** * 更改私有文件名 *  * @param oldName * @param newName * @return */public boolean renameDataFile(String oldName, String newName) {File oldFile = new File(FILESPATH + oldName);File newFile = new File(FILESPATH + newName);return oldFile.renameTo(newFile);}/** * 在私有目录下进行文件复制 *  * @param srcFileName *            : 包含路径及文件名 * @param destFileName * @return * @throws IOException */public boolean copyDataFileTo(String srcFileName, String destFileName)throws IOException {File srcFile = new File(FILESPATH + srcFileName);File destFile = new File(FILESPATH + destFileName);return copyFileTo(srcFile, destFile);}/** * 复制私有目录里指定目录的所有文件 *  * @param srcDirName * @param destDirName * @return * @throws IOException */public boolean copyDataFilesTo(String srcDirName, String destDirName)throws IOException {File srcDir = new File(FILESPATH + srcDirName);File destDir = new File(FILESPATH + destDirName);return copyFilesTo(srcDir, destDir);}/** * 移动私有目录下的单个文件 *  * @param srcFileName * @param destFileName * @return * @throws IOException */public boolean moveDataFileTo(String srcFileName, String destFileName)throws IOException {File srcFile = new File(FILESPATH + srcFileName);File destFile = new File(FILESPATH + destFileName);return moveFileTo(srcFile, destFile);}/** * 移动私有目录下的指定目录下的所有文件 *  * @param srcDirName * @param destDirName * @return * @throws IOException */public boolean moveDataFilesTo(String srcDirName, String destDirName)throws IOException {File srcDir = new File(FILESPATH + srcDirName);File destDir = new File(FILESPATH + destDirName);return moveFilesTo(srcDir, destDir);}/* * 将文件写入应用私有的files目录。如:writeFile("test.txt"); */public Output wirteFile(String fileName) throws IOException {OutputStream os = context.openFileOutput(fileName,Context.MODE_WORLD_WRITEABLE);return new Output(os);}/* * 在原有文件上继续写文件。如:appendFile("test.txt"); */public Output appendFile(String fileName) throws IOException {OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND);return new Output(os);}/* * 从应用的私有目录files读取文件。如:readFile("test.txt"); */public Input readFile(String fileName) throws IOException {InputStream is = context.openFileInput(fileName);return new Input(is);}/**********************************************************************************************************//*********************************************************************************************************/ *//** * 删除一个文件 *  * @param file * @return */public boolean delFile(File file) {if (file.isDirectory())return false;return file.delete();}/** * 删除一个目录(可以是非空目录) *  * @param dir */public boolean delDir(File dir) {if (dir == null || !dir.exists() || dir.isFile()) {return false;}for (File file : dir.listFiles()) {if (file.isFile()) {file.delete();} else if (file.isDirectory()) {delDir(file);// 递归}}dir.delete();return true;}/** * 拷贝一个文件,srcFile源文件,destFile目标文件 *  * @param path * @throws IOException */public boolean copyFileTo(File srcFile, File destFile) throws IOException {if (srcFile.isDirectory() || destFile.isDirectory())return false;// 判断是否是文件FileInputStream fis = new FileInputStream(srcFile);FileOutputStream fos = new FileOutputStream(destFile);int readLen = 0;byte[] buf = new byte[1024];while ((readLen = fis.read(buf)) != -1) {fos.write(buf, 0, readLen);}fos.flush();fos.close();fis.close();return true;}/** * 拷贝目录下的所有文件到指定目录 *  * @param srcDir * @param destDir * @return * @throws IOException */public boolean copyFilesTo(File srcDir, File destDir) throws IOException {if (!srcDir.isDirectory() || !destDir.isDirectory())return false;// 判断是否是目录if (!destDir.exists())return false;// 判断目标目录是否存在File[] srcFiles = srcDir.listFiles();for (int i = 0; i < srcFiles.length; i++) {if (srcFiles[i].isFile()) {// 获得目标文件File destFile = new File(destDir.getPath() + "//"+ srcFiles[i].getName());copyFileTo(srcFiles[i], destFile);} else if (srcFiles[i].isDirectory()) {File theDestDir = new File(destDir.getPath() + "//"+ srcFiles[i].getName());copyFilesTo(srcFiles[i], theDestDir);}}return true;}/** * 移动一个文件 *  * @param srcFile * @param destFile * @return * @throws IOException */public boolean moveFileTo(File srcFile, File destFile) throws IOException {boolean iscopy = copyFileTo(srcFile, destFile);if (!iscopy)return false;delFile(srcFile);return true;}/** * 移动目录下的所有文件到指定目录 *  * @param srcDir * @param destDir * @return * @throws IOException */public boolean moveFilesTo(File srcDir, File destDir) throws IOException {if (!srcDir.isDirectory() || !destDir.isDirectory()) {return false;}File[] srcDirFiles = srcDir.listFiles();for (int i = 0; i < srcDirFiles.length; i++) {if (srcDirFiles[i].isFile()) {File oneDestFile = new File(destDir.getPath() + "//"+ srcDirFiles[i].getName());moveFileTo(srcDirFiles[i], oneDestFile);delFile(srcDirFiles[i]);} else if (srcDirFiles[i].isDirectory()) {File oneDestFile = new File(destDir.getPath() + "//"+ srcDirFiles[i].getName());moveFilesTo(srcDirFiles[i], oneDestFile);delDir(srcDirFiles[i]);}}return true;}}



更多相关文章

  1. Android xml资源文件animal动画解析
  2. Android Studio基础之项目目录结构(四)-学习篇
  3. Error--->android工程导入找不到R文件
  4. 在AndroidManifest.xml文件中的android:windowSoftInputMode属性
  5. Gradle离线配置、.android、.AndroidStudio、.gradle、.m2缓存文
  6. Android 获取AndroidManifest.xml文件versionCode,versionName属
  7. Android客户端上传文件,C#服务端接收文件
  8. android 录音 Android 使用AudioRecord录音相关和音频文件的封装

随机推荐

  1. 谈谈你对Android(安卓)NDK的理解
  2. 第六章 Android(安卓)绘图机制与屏幕适配
  3. 安卓开发学习之012 TextView高级应用
  4. android studio gradle自动签名构建实现
  5. android UI进阶之弹窗的使用(2)--实现通讯
  6. android & Linux uevent机制
  7. Android应用程序设计——入门配置
  8. Android菜鸟的成长笔记(1)——Android开发
  9. App Inventor for Android(安卓)- 大家都
  10. Android下USB Accessory的实现分析