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 //提取扩展名   
473 String str2=str1.substring(str1.lastIndexOf(".")+1);

 

posted @ 2016-10-29 10:23  Boblim  阅读(43796)  评论(0编辑  收藏  举报