Java文件操作

  1.  Java文件操作我个人认为重要的问题有:
  2.   a:如何跨平台问题
  3.   b:文件编码问题,尤其是多语言平台情况下如何正常工作。
  4.   c:文件读写效率、操作效率
  5.   d:文件加密和文件安全
  6.   e:文件快速检索,强烈建议使用lence进行文件检索及文件管理。
  7. 以下是本人做的一些整理:
  8. 一:建立文件
  9.    File file1 = new File ("C://temp//myNote.txt"); // in Windows  这是windows文件系统下的方法
  10.    File file2 = new File ("/tmp/myNote.txt"); // in Linux/Unix        unix文件系统的方法
  11. 最安全的建立文件的方法:
  12.   File myFile = new File("C:" + File.separator + "jdk1.5.0" + File.separator, "File.java");
  13.    File.separator 是文件路径符号。
  14.   System.out.println(myFile.getName());//取得文件名称的方法
  15.   System.out.println(myFile.getPath());//取得文件路径的方法
  16.   System.out.println(myFile.isAbsolute());//判断文件是否完整
  17.   System.out.println(myFile.getParent());//取得文件的根目录
  18.   System.out.println(myFile.exists());//判断文件是否存在
  19.   System.out.println(myFile.isDirectory());//判断是否是目录
  20.   System.out.println(myFile.isFile());//判断是否是文件
  21.   System.out.println(myFile.isHidden());//判断是否是隐藏文件
  22.   System.out.println(myFile.canRead());//判断是否可读
  23.   System.out.println(myFile.canWrite());//判断是否可写
  24.   File myFile_A = new File("C:" + File.separator);
  25.        for(String s: myFile_A.list()){//读取某个目录下所有文件
  26.        System.out.println(s);
  27.        }
  28.     File myFile_C=new File("d:/test.txt");
  29.            System.out.println(new Date(myFile_C.lastModified()));//最后一次编辑时间
  30.        myFile_C.renameTo(new File("c:/text.txt.bak"));//从命名
  31.        myFile_C.setReadOnly();//设置为只读
  32. 二:文件过滤方法
  33.    java提供了很好的文件过滤借口:FilenameFilter 过滤以后的文件可以用listFiles显示出来。效率还是非常高的。
  34. import java.io.File;
  35. import java.io.FilenameFilter;
  36. import java.util.Date;
  37. class FileListFilter implements FilenameFilter {
  38.  private String name;
  39.  private String extension;
  40.  public FileListFilter(String name, String extension) {
  41.    this.name = name;
  42.    this.extension = extension;
  43.  }
  44.  public boolean accept(File directory, String filename) {
  45.    boolean fileOK = true;
  46.    if (name != null) {
  47.      fileOK = filename.startsWith(name);
  48.    }
  49.    if (extension != null) {
  50.      fileOK = filename.endsWith('.' + extension);
  51.    }
  52.    return fileOK;
  53.  }
  54. }
  55. 测试方法:
  56. import java.io.File;
  57. import java.io.FilenameFilter;
  58. import java.util.Date;
  59. public class Run_FileListFilter {
  60.  public static void main(String[] args) {
  61.      File myDir = new File("d:/");
  62.      FilenameFilter select = new FileListFilter("F""txt");
  63.      File[] contents = myDir.listFiles(select);
  64.      for (File file : contents) {
  65.        System.out.println(file + " is a " + (file.isDirectory() ? "directory" : "file")
  66.            + " last modified on/n" + new Date(file.lastModified()));
  67.      }
  68.  }
  69. }
  70. 三:建立目录、文件、临时文件、删除文件或目录
  71. import java.io.File;
  72. import java.io.IOException;
  73. public class MakeDir {
  74.  public static void main(String[] args) {
  75.    File myFile=new File("D:/myFubin/");
  76.    if(myFile.mkdir()){//单级目录
  77.      System.out.println("建立目录成功");
  78.    }else{
  79.      System.out.println("建立目录失败");
  80.    }
  81.    
  82.    File myFile_A=new File("D:/myFubin/test/");
  83.    if(myFile_A.mkdirs()){//多级目录
  84.      System.out.println("建立目录成功");
  85.    }else{
  86.      System.out.println("建立目录失败");
  87.    }
  88.    
  89.    File file = new File("d://myFubin//test.txt");
  90.    try {
  91.      file.createNewFile();//建立空文件
  92.    } catch (IOException e) {
  93.      e.printStackTrace();
  94.    }
  95.    
  96.    System.out.println(file.canRead());
  97.    
  98.    if(file.delete()){//删除文件或删除目录
  99.      //删除文件的另外一个方法:file.deleteOnExit() 这种方法是在程序退出的时候将文件删除
  100.      System.out.println("删除成功");
  101.    }else{
  102.      System.out.println("删除失败");
  103.    }  
  104.    
  105.    try {
  106.      File  tmp = File.createTempFile("foo""tmp");//建立临时文件
  107.      System.out.println("刚才建立的临时文件在:" + tmp.getCanonicalPath());
  108.    } catch (IOException e) {
  109.      e.printStackTrace();
  110.    }
  111.    
  112.    
  113.  }
  114. }

 

你可能感兴趣的:(java,String,File,null,extension,跨平台)