zoukankan      html  css  js  c++  java
  • Java文件file操作总结 java程序员

    由于一直在使用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();
          }
      }
    }

  • 相关阅读:
    难道真的是RedBook错了?
    用一个土办法证明RedBook的错误
    Md5 Loader Demo
    simple shadow mapping
    又遇到让人疑惑的问题
    [洛谷P1037][题解]产生数
    [洛谷P1279][题解]字串距离
    [洛谷P1122][题解]最大子树和
    [洛谷P1144][题解]最短路计数
    Vue 之 Data
  • 原文地址:https://www.cnblogs.com/java20130725/p/3215676.html
Copyright © 2011-2022 走看看