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

  • 相关阅读:
    数据绑定表达式语法(Eval,Bind区别)
    使用博客园的第一件事 自定义主题
    sql2000 跨服务器复制表数据
    使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
    MMC不能打开文件MSC文件
    sql 日期 、时间相关
    loaded AS2 swf call function in AS3 holder
    Rewrite the master page form action attribute in asp.net 2.0
    100万个不重复的8位的随机数
    flash 中实现斜切变型
  • 原文地址:https://www.cnblogs.com/java20130725/p/3215676.html
Copyright © 2011-2022 走看看