android的文件操作要有权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>

SD卡下的文件操作:

1、判断SD卡是否插入

Environment.getExternalStorageState().equals( android.os.Environment.MEDIA_MOUNTED);

2、获得sd卡根目录:

File skRoot = Environment.getExternalStorageDirectory();

私有目录下的文件操作:

1、获得私有根目录:

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

还未整理

文件夹或文件夹操作:

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

a、获得文件或文件夹的绝对路径和相对路径。区别

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

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

String parentPath = File.getParent();

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

String Name = File.getName();

2、建立文件或文件夹

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

3、判断是文件或文件夹

File.isDirectory()

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

File[] files = File.listFiles();

5、修改文件夹和文件名

File.renameTo(dest);

6、删除文件夹或文件

File.delete();

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; } }

getPath与getAbsoultePath的区别:

getAbsolutePath():返回抽象路径名的绝对路径名字符串。

public static void test1(){ File file1 = new File(".//test1.txt"); File file2 = new File("D://workspace//test//test1.txt"); System.out.println("-----默认相对路径:取得路径不同------"); System.out.println(file1.getPath()); System.out.println(file1.getAbsolutePath()); System.out.println("-----默认绝对路径:取得路径相同------"); System.out.println(file2.getPath()); System.out.println(file2.getAbsolutePath()); } -----默认相对路径:取得路径不同------ ./test1.txt D:/workspace/test/./test1.txt -----默认绝对路径:取得路径相同------ D:/workspace/test/test1.txt D:/workspace/test/test1.txt ---------------------------------------------------- public static void test2() throws Exception{ File file = new File("..//src//test1.txt"); System.out.println(file.getAbsolutePath()); System.out.println(file.getCanonicalPath()); } D:/workspace/test/../src/test1.txt D:/workspace/src/test1.txt -------------------------------------------- public static void test3() throws Exception{ File file = new File("D://Text.txt"); System.out.println(file.getCanonicalPath());

(1),确定D盘下没有Text.txt这个文件,直接执行这段代码,得到的结果是:
D:/Text.txt注意这里试大写的Text.txt
(2)在D盘下建立一个文件,名叫text.txt,再次执行代码,得到结果
D:/text.txt同样的代码得到不同的结果。

更多相关文章

  1. Android 文件存储--内部存储的例子
  2. android读取assets大于1M文件的解决方法
  3. android 系统文件目录结构
  4. Android 打开文件管理器 获取文件的真实路径
  5. Android 文件上传参考
  6. android SD卡文件变化监控
  7. Android学习笔记(11)————Android的私人文件夹的文件读写操作
  8. android一种较为复杂的布局参考(xml文件)
  9. android读取工程里文件并显示在界面

随机推荐

  1. Python - 将值打印到新文件?
  2. 真正最正确的用BAT运行JAVA不显示DOS窗口
  3. Tkinter小部件上的垂直和水平滚动条
  4. 在Python中TypeError: object() takes no
  5. Python_面向对象_单例模式
  6. 用python计算20日均线数值
  7. Python添加默认模块搜索包路径
  8. python的list要打印中文字符
  9. Python——函数 8、可变长参数
  10. 任何人都可以提供更多的pythonic方式来生