zoukankan      html  css  js  c++  java
  • java中File类

    转自http://shameant.iteye.com/blog/163007

    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 " + 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(); 
       } 
       
       


  • 相关阅读:
    博客园小技巧【转载】
    Windows下的多线程
    【Windows】Windows中的数据类型以及命名
    【文档管理系统】【转】什么是元数据
    CentOS 安装 MariaDB 全部命令
    emacs 入门
    参考路径
    My SQL load data infile 遇到的问题总结
    oracle迁移到mysql(仅使用脚本)
    Eclipse tomcat server 无法添加项目
  • 原文地址:https://www.cnblogs.com/shininguang/p/4765138.html
Copyright © 2011-2022 走看看