听老歌 发表于 2011-05-17 13:22

Java文件操作大全

Java文件操作大全

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.isDirectory()){   
59.      files.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.isDirectory()) {   
161.            folderList.add(files.getPath());   
162.      } else {   
163.            fileList.add(files);   
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);   
189.            } else {   
190.                temp = new File(folderList.peek() + File.separator + file);   
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;   
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.isDirectory()){   
230.      ArrayList<String>folderList=new ArrayList<String>();   
231.      folderList.add(copyfoldersList.getPath());   
232.      ArrayList<String>folderList2=new ArrayList<String>();   
233.      folderList2.add(str2+"/"+copyfoldersList.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);   
243.                     } else {   
244.                         temp=new File(folderList.get(j)+"/"+File.separator+file);   
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;   
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);   
261.                         folderList2.add(folderList2.get(j)+"/"+file);   
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);   
289.            } else {   
290.                temp = new File(folderList.peek() + File.separator + file);   
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;   
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.isDirectory()){   
339.      ArrayList<String>folderList=new ArrayList<String>();   
340.      folderList.add(movefoldersList.getPath());   
341.      ArrayList<String>folderList2=new ArrayList<String>();   
342.      folderList2.add(str2+"/"+movefoldersList.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);   
352.                     }   
353.                     else{   
354.                         temp=new File(folderList.get(j)+"/"+File.separator+file);   
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;   
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);   
372.                         folderList2.add(folderList2.get(j)+"/"+file);   
373.                     }   
374.               }   
375.             }   
376.             catch (Exception e) {   
377.               System.out.println("复制整个文件夹内容操作出错");   
378.               e.printStackTrace();   
379.             }   
380.      }   
381.      movefoldersList.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);   
402.            }   
403.            else{   
404.                temp=new File(folderList.get(j)+"/"+File.separator+file);   
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);   
412.                folderList2.add(folderList2.get(j)+"/"+file);   
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;   
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.isDirectory()){   
452.      int bytesum = 0;   
453.      int byteread = 0;   
454.      try {   
455.            InputStream inStream = new FileInputStream(files); //读入原文件   
456.            FileOutputStream fs = new FileOutputStream(new File(str2,files.getName());   
457.            byte[] buffer = new byte;   
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);

SunPeng040709 发表于 2011-05-17 14:04

嗯,不错,受教了!

小叶珠 发表于 2013-06-17 14:31

没有我想找的 不过非常有用 感谢分享

pitonas 发表于 2013-06-24 02:35

嗯,非常有用 感谢分享!

hello_ketty 发表于 2013-07-04 20:56

强大的IO处理啊

lastexile 发表于 2013-07-12 14:56

不错不错,收下:$

泥人 发表于 2013-07-22 11:13

挺全的,谢谢!!
页: [1]
查看完整版本: Java文件操作大全