Java文件操作大全

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


你可能感兴趣的:(java-文件操作)