由于一直在使用Java file功能,但是总是很混乱,今天将Java File的所有功能做一个总结。 Java文件操作我个人认为重要的问题有: a:如何跨平台问题 b:文件编码问题,尤其是多语言平台情况下如何正常工作。 c:文件读写效率、操作效率 d:文件加密和文件安全 e:文件快速检索,强烈建议使用lence进行文件检索及文件管理。 以下是本人做的一些整理: 一:建立文件 File file1 = new File ("C://temp//myNote.txt"); // in Windows 这是windows文件系统下的方法 File file2 = new File ("/tmp/myNote.txt"); // in Linux/Unix unix文件系统的方法 最安全的建立文件的方法: File myFile = new File("C:" + File.separator + "jdk1.5.0" + File.separator, "File.java"); File.separator 是文件路径符号。 System.out.println(myFile.getName());//取得文件名称的方法 System.out.println(myFile.getPath());//取得文件路径的方法 System.out.println(myFile.isAbsolute());//判断文件是否完整 System.out.println(myFile.getParent());//取得文件的根目录 System.out.println(myFile.exists());//判断文件是否存在 System.out.println(myFile.isDirectory());//判断是否是目录 System.out.println(myFile.isFile());//判断是否是文件 System.out.println(myFile.isHidden());//判断是否是隐藏文件 System.out.println(myFile.canRead());//判断是否可读 System.out.println(myFile.canWrite());//判断是否可写 File myFile_A = new File("C:" + File.separator); for(String s: myFile_A.list()){//读取某个目录下所有文件 System.out.println(s); } File myFile_C=new File("d:/test.txt"); System.out.println(new Date(myFile_C.lastModified()));//最后一次编辑时间 myFile_C.renameTo(new File("c:/text.txt.bak"));//从命名 myFile_C.setReadOnly();//设置为只读 二:文件过滤方法 java提供了很好的文件过滤借口:FilenameFilter 过滤以后的文件可以用listFiles显示出来。效率还是非常高的。 import java.io.File; import java.io.FilenameFilter; import java.util.Date; /** * 文件过滤器过滤类 * @author fb */ class FileListFilter implements FilenameFilter { private String name; private String extension; public FileListFilter(String name, String extension) { this.name = name; this.extension = extension; } public boolean accept(File directory, String filename) { boolean fileOK = true; if (name != null) { fileOK = filename.startsWith(name); } if (extension != null) { fileOK = filename.endsWith('.' + extension); } return fileOK; } } 测试方法: import java.io.File; import java.io.FilenameFilter; import java.util.Date; /** * 文件过滤器 运行函数 * @author fb */ public class Run_FileListFilter { public static void main(String[] args) { File myDir = new File("d:/"); FilenameFilter select = new FileListFilter("F", "txt"); File[] contents = myDir.listFiles(select); for (File file : contents) { System.out.println(file + " is a " + (file.isDirectory() ? "directory" : "file") + " last modified on/n" + new Date(file.lastModified())); } } } 三:建立目录、文件、临时文件、删除文件或目录 import java.io.File; import java.io.IOException; public class MakeDir { public static void main(String[] args) { File myFile=new File("D:/myFubin/"); if(myFile.mkdir()){//单级目录 System.out.println("建立目录成功"); }else{ System.out.println("建立目录失败"); } File myFile_A=new File("D:/myFubin/test/"); if(myFile_A.mkdirs()){//多级目录 System.out.println("建立目录成功"); }else{ System.out.println("建立目录失败"); } File file = new File("d://myFubin//test.txt"); try { file.createNewFile();//建立空文件 } catch (IOException e) { e.printStackTrace(); } System.out.println(file.canRead()); if(file.delete()){//删除文件或删除目录 //删除文件的另外一个方法:file.deleteOnExit() 这种方法是在程序退出的时候将文件删除 System.out.println("删除成功"); }else{ System.out.println("删除失败"); } try { File tmp = File.createTempFile("foo", "tmp");//建立临时文件 System.out.println("刚才建立的临时文件在:" + tmp.getCanonicalPath()); } catch (IOException e) { e.printStackTrace(); } } }
import java.io.File; /** * @author fb www.cujava.com * 文件操作里Java 1.6 新功能:查询磁盘空间 */ public class SpaceChecker { public static void main(String[] args) { File[] roots = File.listRoots();//取得所有的根,如果是windows系统那么将取得所有的磁盘 for (int i = 0; i < roots.length; i++) { System.out.println(roots[i]); System.out.println("Free space = " + roots[i].getFreeSpace()); System.out.println("Usable space = " + roots[i].getUsableSpace()); System.out.println("Total space = " + roots[i].getTotalSpace()); System.out.println(); } } }
转载于:https://www.cnblogs.com/java20130725/archive/2012/12/04/3215676.html