Java文件操作大全

来源:互联网 发布:西安思伟软件 编辑:程序博客网 时间:2024/05/11 14:00
 
//1.创建文件夹    
  1. //import java.io.*;   
  2. File myFolderPath = new File(str1);    
  3. try {    
  4.     if (!myFolderPath.exists()) {    
  5.        myFolderPath.mkdir();    
  6.     }    
  7. }    
  8. catch (Exception e) {    
  9.     System.out.println("新建目录操作出错");    
  10.     e.printStackTrace();    
  11. }     
  12.   
  13. //2.创建文件    
  14. //import java.io.*;   
  15. File myFilePath = new File(str1);    
  16. try {    
  17.     if (!myFilePath.exists()) {    
  18.         myFilePath.createNewFile();    
  19.     }    
  20.     FileWriter resultFile = new FileWriter(myFilePath);    
  21.     PrintWriter myFile = new PrintWriter(resultFile);    
  22.     myFile.println(str2);    
  23.     resultFile.close();    
  24. }    
  25. catch (Exception e) {    
  26.     System.out.println("新建文件操作出错");    
  27.     e.printStackTrace();    
  28. }     
  29.   
  30. //3.删除文件    
  31. //import java.io.*;   
  32. File myDelFile = new File(str1);    
  33. try {    
  34.     myDelFile.delete();    
  35. }    
  36. catch (Exception e) {    
  37.     System.out.println("删除文件操作出错");    
  38.     e.printStackTrace();    
  39. }     
  40.   
  41. //4.删除文件夹    
  42. //import java.io.*;   
  43. File delFolderPath = new File(str1);    
  44. try {    
  45.     delFolderPath.delete(); //删除空文件夹   
  46. }    
  47. catch (Exception e) {    
  48.     System.out.println("删除文件夹操作出错");    
  49.     e.printStackTrace();    
  50. }     
  51.   
  52. //5.删除一个文件下夹所有的文件夹   
  53. //import java.io.*;   
  54. File delfile=new File(str1);    
  55. File[] files=delfile.listFiles();    
  56. for(int i=0;i<files.length;i++){    
  57.     if(files[i].isDirectory()){    
  58.         files[i].delete();    
  59.     }    
  60. }      
  61.     
  62. //6.清空文件夹    
  63. //import java.io.*;   
  64. File delfilefolder=new File(str1);    
  65. try {    
  66.     if (!delfilefolder.exists()) {    
  67.         delfilefolder.delete();    
  68.     }    
  69.     delfilefolder.mkdir();    
  70. }    
  71. catch (Exception e) {    
  72.     System.out.println("清空目录操作出错");    
  73.     e.printStackTrace();    
  74. }     
  75.   
  76. //7.读取文件    
  77. //import java.io.*;   
  78. // 逐行读取数据    
  79. FileReader fr = new FileReader(str1);    
  80. BufferedReader br = new BufferedReader(fr);    
  81. String str2 = br.readLine();    
  82. while (str2 != null) {    
  83.     str3    
  84.     str2 = br.readLine();    
  85. }    
  86. br.close();    
  87. fr.close();     
  88.   
  89. //8.写入文件    
  90. //import java.io.*;   
  91. // 将数据写入文件    
  92. try {    
  93.     FileWriter fw = new FileWriter(str1);    
  94.     fw.write(str2);    
  95.     fw.flush();    
  96.     fw.close();     
  97. catch (IOException e) {    
  98.     e.printStackTrace();    
  99. }    
  100.   
  101. //9.写入随机文件    
  102. //import java.io.*;   
  103. try {    
  104.     RandomAcessFile logFile=new RandomAcessFile(str1,"rw");    
  105.     long lg=logFile.length();    
  106.     logFile.seek(str2);    
  107.     logFile.writeByte(str3);    
  108. }catch(IOException ioe){    
  109.     System.out.println("无法写入文件:"+ioe.getMessage());    
  110. }     
  111.   
  112. //10.读取文件属性    
  113. //import java.io.*;   
  114. // 文件属性的取得    
  115. File f = new File(str1);    
  116. if (af.exists()) {    
  117.     System.out.println(f.getName() + "的属性如下: 文件长度为:" + f.length());    
  118.     System.out.println(f.isFile() ? "是文件" : "不是文件");    
  119.     System.out.println(f.isDirectory() ? "是目录" : "不是目录");    
  120.     System.out.println(f.canRead() ? "可读取" : "不");    
  121.     System.out.println(f.canWrite() ? "是隐藏文件" : "");    
  122.     System.out.println("文件夹的最后修改日期为:" + new Date(f.lastModified()));    
  123.     } else {    
  124.     System.out.println(f.getName() + "的属性如下:");    
  125.     System.out.println(f.isFile() ? "是文件" : "不是文件");    
  126.     System.out.println(f.isDirectory() ? "是目录" : "不是目录");    
  127.     System.out.println(f.canRead() ? "可读取" : "不");    
  128.     System.out.println(f.canWrite() ? "是隐藏文件" : "");    
  129.     System.out.println("文件的最后修改日期为:" + new Date(f.lastModified()));    
  130. }    
  131. if(f.canRead()){    
  132.     str2    
  133. }    
  134. if(f.canWrite()){    
  135.     str3    
  136. }    
  137.   
  138. //11.写入属性    
  139. //import java.io.*;   
  140. File filereadonly=new File(str1);    
  141. try {    
  142.     boolean b=filereadonly.setReadOnly();    
  143. }    
  144. catch (Exception e) {    
  145.     System.out.println("拒绝写访问:"+e.printStackTrace());    
  146. }     
  147.   
  148. //12.枚举一个文件夹中的所有文件   
  149. //import java.io.*;   
  150. //import java.util.*;   
  151. LinkedList<String> folderList = new LinkedList<String>();    
  152. folderList.add(str1);    
  153. while (folderList.size() > 0) {    
  154.     File file = new File(folderList.peek());    
  155.     folderList.removeLast();    
  156.     File[] files = file.listFiles();    
  157.     ArrayList<File> fileList = new ArrayList<File>();    
  158.     for (int i = 0; i < files.length; i++) {    
  159.         if (files[i].isDirectory()) {    
  160.             folderList.add(files[i].getPath());    
  161.         } else {    
  162.             fileList.add(files[i]);    
  163.         }    
  164.     }    
  165.     for (File f : fileList) {    
  166.         str2=f.getAbsoluteFile();    
  167.         str3    
  168.     }    
  169. }    
  170.   
  171. //13.复制文件夹     
  172. //import java.io.*;   
  173. //import java.util.*;   
  174. LinkedList<String> folderList = new LinkedList<String>();    
  175. folderList.add(str1);    
  176. LinkedList<String> folderList2 = new LinkedList<String>();    
  177. folderList2.add(str2+ str1.substring(str1.lastIndexOf("\\")));    
  178. while (folderList.size() > 0) {    
  179.     (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹   
  180.     File folders = new File(folderList.peek());    
  181.     String[] file = folders.list();    
  182.     File temp = null;    
  183.     try {    
  184.         for (int i = 0; i < file.length; i++) {    
  185.             if (folderList.peek().endsWith(File.separator)) {    
  186.                 temp = new File(folderList.peek() + File.separator    
  187.                 + file[i]);    
  188.             } else {    
  189.                 temp = new File(folderList.peek() + File.separator + file[i]);    
  190.             }    
  191.             if (temp.isFile()) {    
  192.                 FileInputStream input = new FileInputStream(temp);    
  193.                 FileOutputStream output = new FileOutputStream(    
  194.                 folderList2.peek() + File.separator + (temp.getName()).toString());    
  195.                 byte[] b = new byte[5120];    
  196.                 int len;    
  197.                 while ((len = input.read(b)) != -1) {    
  198.                     output.write(b, 0, len);    
  199.                 }    
  200.                 output.flush();    
  201.                 output.close();    
  202.                 input.close();    
  203.             }    
  204.             if (temp.isDirectory()) {// 如果是子文件夹   
  205.                 for (File f : temp.listFiles()) {    
  206.                     if (f.isDirectory()) {    
  207.                         folderList.add(f.getPath());    
  208.                         folderList2.add(folderList2.peek()    
  209.                         + File.separator + f.getName());    
  210.                     }    
  211.                 }    
  212.             }    
  213.         }    
  214.     } catch (Exception e) {    
  215.     //System.out.println("复制整个文件夹内容操作出错");   
  216.         e.printStackTrace();    
  217.     }    
  218.     folderList.removeFirst();    
  219.     folderList2.removeFirst();    
  220. }    
  221.   
  222. //14.复制一个文件夹下所有的文件夹到另一个文件夹下   
  223. //import java.io.*;   
  224. //import java.util.*;   
  225. File copyfolders=new File(str1);    
  226. File[] copyfoldersList=copyfolders.listFiles();    
  227. for(int k=0;k<copyfoldersList.length;k++){    
  228.     if(copyfoldersList[k].isDirectory()){    
  229.         ArrayList<String>folderList=new ArrayList<String>();    
  230.         folderList.add(copyfoldersList[k].getPath());    
  231.         ArrayList<String>folderList2=new ArrayList<String>();    
  232.         folderList2.add(str2+"/"+copyfoldersList[k].getName());    
  233.         for(int j=0;j<folderList.length;j++){    
  234.              (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹   
  235.              File folders=new File(folderList.get(j));    
  236.              String[] file=folders.list();    
  237.              File temp=null;    
  238.              try {    
  239.                  for (int i = 0; i < file.length; i++) {    
  240.                      if(folderList.get(j).endsWith(File.separator)){    
  241.                          temp=new File(folderList.get(j)+"/"+file[i]);    
  242.                      } else {    
  243.                          temp=new File(folderList.get(j)+"/"+File.separator+file[i]);    
  244.                      }    
  245.                      FileInputStream input = new FileInputStream(temp);    
  246.                      if(temp.isFile()){    
  247.                          FileInputStream input = new FileInputStream(temp);    
  248.                          FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());    
  249.                          byte[] b = new byte[5120];    
  250.                          int len;    
  251.                          while ( (len = input.read(b)) != -1) {    
  252.                              output.write(b, 0, len);    
  253.                          }    
  254.                          output.flush();    
  255.                          output.close();    
  256.                          input.close();    
  257.                      }    
  258.                      if(temp.isDirectory()){//如果是子文件夹   
  259.                          folderList.add(folderList.get(j)+"/"+file[i]);    
  260.                          folderList2.add(folderList2.get(j)+"/"+file[i]);    
  261.                      }    
  262.                  }    
  263.              }    
  264.              catch (Exception e) {    
  265.                  System.out.println("复制整个文件夹内容操作出错");    
  266.                  e.printStackTrace();    
  267.              }    
  268.         }    
  269.     }    
  270. }    
  271.   
  272. //15.移动文件夹    
  273. //import java.io.*;   
  274. //import java.util.*;   
  275. LinkedList<String> folderList = new LinkedList<String>();    
  276. folderList.add(str1);    
  277. LinkedList<String> folderList2 = new LinkedList<String>();    
  278. folderList2.add(str2 + str1.substring(str1.lastIndexOf("\\")));    
  279. while (folderList.size() > 0) {    
  280.     (new File(folderList2.peek())).mkdirs(); // 如果文件夹不存在 则建立新文件夹   
  281.     File folders = new File(folderList.peek());    
  282.     String[] file = folders.list();    
  283.     File temp = null;    
  284.     try {    
  285.         for (int i = 0; i < file.length; i++) {    
  286.             if (folderList.peek().endsWith(File.separator)) {    
  287.                 temp = new File(folderList.peek() + File.separator + file[i]);    
  288.             } else {    
  289.                 temp = new File(folderList.peek() + File.separator + file[i]);    
  290.             }    
  291.             if (temp.isFile()) {    
  292.                 FileInputStream input = new FileInputStream(temp);    
  293.                 FileOutputStream output = new FileOutputStream(    
  294.                 folderList2.peek() + File.separator + (temp.getName()).toString());    
  295.                 byte[] b = new byte[5120];    
  296.                 int len;    
  297.                 while ((len = input.read(b)) != -1) {    
  298.                     output.write(b, 0, len);    
  299.                 }    
  300.                 output.flush();    
  301.                 output.close();    
  302.                 input.close();    
  303.                 if (!temp.delete())    
  304.                 System.out.println("删除单个文件操作出错!");    
  305.             }    
  306.             if (temp.isDirectory()) {// 如果是子文件夹   
  307.                 for (File f : temp.listFiles()) {    
  308.                     if (f.isDirectory()) {    
  309.                         folderList.add(f.getPath());    
  310.                         folderList2.add(folderList2.peek() + File.separator + f.getName());    
  311.                     }    
  312.                 }    
  313.             }    
  314.         }    
  315.     } catch (Exception e) {    
  316.         // System.out.println("复制整个文件夹内容操作出错");   
  317.         e.printStackTrace();    
  318.     }    
  319.     folderList.removeFirst();    
  320.     folderList2.removeFirst();    
  321. }    
  322. File f = new File(str1);    
  323. if (!f.delete()) {    
  324.     for (File file : f.listFiles()) {    
  325.         if (file.list().length == 0) {    
  326.             System.out.println(file.getPath());    
  327.             file.delete();    
  328.         }    
  329.     }    
  330. }    
  331. //16.移动一个文件夹下所有的文件夹到另一个目录下   
  332. //import java.io.*;   
  333. //import java.util.*;   
  334. File movefolders=new File(str1);    
  335. File[] movefoldersList=movefolders.listFiles();    
  336. for(int k=0;k<movefoldersList.length;k++){    
  337.     if(movefoldersList[k].isDirectory()){    
  338.         ArrayList<String>folderList=new ArrayList<String>();    
  339.         folderList.add(movefoldersList[k].getPath());    
  340.         ArrayList<String>folderList2=new ArrayList<String>();    
  341.         folderList2.add(str2+"/"+movefoldersList[k].getName());    
  342.         for(int j=0;j<folderList.length;j++){    
  343.              (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹   
  344.              File folders=new File(folderList.get(j));    
  345.              String[] file=folders.list();    
  346.              File temp=null;    
  347.              try {    
  348.                  for (int i = 0; i < file.length; i++) {    
  349.                      if(folderList.get(j).endsWith(File.separator)){    
  350.                          temp=new File(folderList.get(j)+"/"+file[i]);    
  351.                      }    
  352.                      else{    
  353.                          temp=new File(folderList.get(j)+"/"+File.separator+file[i]);    
  354.                      }    
  355.                      FileInputStream input = new FileInputStream(temp);    
  356.                      if(temp.isFile()){    
  357.                          FileInputStream input = new FileInputStream(temp);    
  358.                          FileOutputStream output = new FileOutputStream(folderList2.get(j) + "/" + (temp.getName()).toString());    
  359.                          byte[] b = new byte[5120];    
  360.                          int len;    
  361.                          while ( (len = input.read(b)) != -1) {    
  362.                              output.write(b, 0, len);    
  363.                          }    
  364.                          output.flush();    
  365.                          output.close();    
  366.                          input.close();    
  367.                          temp.delete();    
  368.                      }    
  369.                      if(temp.isDirectory()){//如果是子文件夹   
  370.                          folderList.add(folderList.get(j)+"/"+file[i]);    
  371.                          folderList2.add(folderList2.get(j)+"/"+file[i]);    
  372.                      }    
  373.                  }    
  374.              }    
  375.              catch (Exception e) {    
  376.                  System.out.println("复制整个文件夹内容操作出错");    
  377.                  e.printStackTrace();    
  378.              }    
  379.         }    
  380.         movefoldersList[k].delete();    
  381.     }    
  382. }    
  383.   
  384. //17.以一个文件夹的框架在另一个目录创建文件夹和空文件   
  385. //import java.io.*;   
  386. //import java.util.*;   
  387. boolean b=false;//不创建空文件   
  388. ArrayList<String>folderList=new ArrayList<String>();    
  389. folderList.add(str1);    
  390. ArrayList<String>folderList2=new ArrayList<String>();    
  391. folderList2.add(str2);    
  392. for(int j=0;j<folderList.length;j++){    
  393.     (new File(folderList2.get(j))).mkdirs(); //如果文件夹不存在 则建立新文件夹   
  394.     File folders=new File(folderList.get(j));    
  395.     String[] file=folders.list();    
  396.     File temp=null;    
  397.     try {    
  398.         for (int i = 0; i < file.length; i++) {    
  399.             if(folderList.get(j).endsWith(File.separator)){    
  400.                 temp=new File(folderList.get(j)+"/"+file[i]);    
  401.             }    
  402.             else{    
  403.                 temp=new File(folderList.get(j)+"/"+File.separator+file[i]);    
  404.             }    
  405.             FileInputStream input = new FileInputStream(temp);    
  406.             if(temp.isFile()){    
  407.                 if (b) temp.createNewFile();    
  408.             }    
  409.             if(temp.isDirectory()){//如果是子文件夹   
  410.                 folderList.add(folderList.get(j)+"/"+file[i]);    
  411.                 folderList2.add(folderList2.get(j)+"/"+file[i]);    
  412.             }    
  413.         }    
  414.     }    
  415.     catch (Exception e) {    
  416.         System.out.println("复制整个文件夹内容操作出错");    
  417.         e.printStackTrace();    
  418.     }    
  419. }    
  420.   
  421. //18.复制文件    
  422. //import java.io.*;   
  423.  int bytesum = 0;    
  424.  int byteread = 0;    
  425.  File oldfile = new File(str1);    
  426.  try {    
  427.  if (oldfile.exists()) { //文件存在时   
  428.  FileInputStream inStream = new FileInputStream(oldfile); //读入原文件   
  429.  FileOutputStream fs = new FileOutputStream(new File(str2,oldfile.getName()));    
  430.  byte[] buffer = new byte[5120];    
  431.  int length;    
  432.  while ( (byteread = inStream.read(buffer)) != -1) {    
  433.  bytesum += byteread; //字节数 文件大小   
  434.  System.out.println(bytesum);    
  435.  fs.write(buffer, 0, byteread);    
  436.  }    
  437.  inStream.close();    
  438.  }    
  439.  }    
  440.  catch (Exception e) {    
  441.  System.out.println("复制单个文件操作出错");    
  442.  e.printStackTrace();    
  443.  }     
  444.   
  445. //19.复制一个文件夹下所有的文件到另一个目录   
  446. //import java.io.*;   
  447. File copyfiles=new File(str1);    
  448. File[] files=copyfiles.listFiles();    
  449. for(int i=0;i<files.length;i++){    
  450.     if(!files[i].isDirectory()){    
  451.         int bytesum = 0;    
  452.         int byteread = 0;    
  453.         try {    
  454.             InputStream inStream = new FileInputStream(files[i]); //读入原文件   
  455.             FileOutputStream fs = new FileOutputStream(new File(str2,files[i].getName());    
  456.             byte[] buffer = new byte[5120];    
  457.             int length;    
  458.             while ( (byteread = inStream.read(buffer)) != -1) {    
  459.                 bytesum += byteread; //字节数 文件大小   
  460.                 System.out.println(bytesum);    
  461.                 fs.write(buffer, 0, byteread);    
  462.             }    
  463.             inStream.close();    
  464.         } catch (Exception e) {    
  465.             System.out.println("复制单个文件操作出错");    
  466.             e.printStackTrace();    
  467.         }    
  468.     }    
  469. }     
  470.   
  471. //20.提取扩展名    
  472. String str2=str1.substring(str1.lastIndexOf(".")+1);  
0 0
原创粉丝点击