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

 

posted @ 2015-06-09 15:15  xianyu.hxy  阅读(185)  评论(0编辑  收藏  举报