A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱晓杰 中级黑马   /  2013-5-27 21:36  /  1871 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 朱晓杰 于 2013-5-27 21:38 编辑
  1. /*
  2. * 检查与创建目录
  3. *
  4. * File类并不仅仅是对现有目录路径、文件或者文件组的一个表示,也可用一个File对象新建一个目录,设置创建一个完整的目录路径。
  5. *
  6. * 或用他了解文件的属性(长度,上一次修改的时间,读/写属性),检查一个File对象到底代表一个文件还是一个目录,以及删除一个文件等。
  7. *
  8. *
  9. * */
  10. import static java.lang.System.out;
  11. import java.io.File;
  12. import java.io.IOException;
  13. public class ClsFileDemo {
  14.         
  15.         //显示文件属性信息
  16.         public static void showFileInfo(File f){
  17.                 out.println(f + "的属性信息*************************");
  18.                 out.println("Absolute path:" + f.getAbsolutePath());
  19.                
  20.                 out.println("Can read:" + f.canRead());
  21.                
  22.                 out.println("Can write:" + f.canWrite());
  23.                
  24.                 out.println("Can execute:" + f.canExecute());
  25.                
  26.                 out.println("getName:" + f.getName());
  27.                
  28.                 out.println("getParent:" + f.getParent());
  29.                
  30.                 out.println("getPath:" + f.getPath());
  31.                
  32.                 out.println("length:" + f.length());
  33.                
  34.                 out.println("lastModified:" + f.lastModified());
  35.                
  36.                 if(f.isFile())
  37.                         out.println("it's a file");
  38.                 else if(f.isDirectory())
  39.                         out.println("it's a directory");
  40.         }
  41.         
  42.         public static void main(String[] args) {
  43.                 File old = new File("old.txt"),rename = new File("H:" + File.separator + "rename.txt");
  44.                
  45.                 try {
  46.                         if(!old.exists())
  47.                                 old.createNewFile();
  48.                 } catch (IOException e) {
  49.                         e.printStackTrace();
  50.                 }
  51.                         
  52.                 //重命名
  53.                 boolean brename = old.renameTo(rename);
  54.                
  55.                 out.println(old + " 重命名为:" + rename + " " + brename);
  56.                
  57.                 showFileInfo(old);
  58.                
  59.                 showFileInfo(rename);
  60.                
  61.                 File f = new File("test.txt");
  62.                
  63.                 if(f.exists()){
  64.                         boolean del = f.delete();
  65.                         //f.deleteOnExit();
  66.                         out.println(f + " 删除是否成功:" + del);
  67.                 }else{
  68.                         boolean mk = f.mkdirs();
  69.                         out.println(f + " 创建是否成功:" + mk);
  70.                 }
  71.                
  72.                 showFileInfo(f);
  73.         }
  74. }
复制代码
  1. /*
  2. * 需求:删除带内容的目录
  3. *
  4. * 分析:1.了解windows系统删除原理:由内到外,一层一层删除,所以用到递归思想
  5. *
  6. *       2.定义要删除的目录
  7. *
  8. *       3.获取删除的目录中的文件列表
  9. *      
  10. *       4.遍历文件 列表,如果是文件,直接删除,如果是目录,则遍历目录中的文件
  11. *      
  12. *       5.将空文件夹删除
  13. */

  14. import static java.lang.System.*;
  15. import java.io.File;

  16. public class DelDirectoryFile {

  17.         public static void main(String[] args) {
  18.                 File file = new File("test");
  19.                 removeDir(file);
  20.         }
  21.         
  22.         public static void removeDir(File dir){
  23.                 if(!dir.exists())
  24.                         throw new RuntimeException(dir.getAbsolutePath() + "目录不存在,请检查!");
  25.                 else{
  26.                         if(dir.isFile()){
  27.                                 //如果文件被其他应用程序打开,会报错,这时可用 deleteOnExit()
  28.                                 out.println(dir + "--file--" + dir.delete());
  29.                         }else{
  30.                                 File[] files = dir.listFiles();
  31.                                 for(File file : files){
  32.                                         if(file.isDirectory())
  33.                                                 removeDir(file);
  34.                                         else if(file.isFile())
  35.                                                 out.println(file + "--file--" + file.delete());
  36.                                 }
  37.                                 out.println(dir + "**dir**" + dir.delete());
  38.                         }
  39.                 }
  40.         }
  41. }
复制代码
  1. /*
  2. * 需求:创建java文件列表,将制定目录下的java文件的绝对路径,存储到一个文本文件中
  3. *
  4. * 分析:1.对指定的目录递归
  5. *
  6. *          2.获取递归过程中所有文件的绝对路径
  7. *
  8. *          3.将这些文件路径存储到集合中
  9. *
  10. *          4.将集合中的数据写入到一个文件中
  11. */
  12. import java.util.*;
  13. import java.io.*;

  14. public class CreateFileList {
  15.         
  16.         public static void main(String[] args) {
  17.                 File dir = new File("F:\\EditPlus\\java");
  18.                
  19.                 List<File> list = new ArrayList<File>();
  20.                
  21.                 fileToList(dir,list);
  22.                
  23.                 File f = new File(dir,"javalist.txt");
  24.                
  25.                 try {
  26.                         listToFile(list,f);
  27.                 } catch (IOException e) {
  28.                         e.printStackTrace();
  29.                 }
  30.         }
  31.         
  32.         public static void fileToList(File dir,List<File> list){
  33.                 //检查目录是否存在
  34.                 if(!dir.exists())
  35.                         throw new RuntimeException(dir.getAbsolutePath() + "目录不存在,请检查!");
  36.                 else{
  37.                         //获取目录的文件列表
  38.                         File[] files = dir.listFiles();
  39.                         //递归遍历文件列表,如果当前是文件,则递归继续遍历,否则判读文件是否以 “.java”结尾,是则加入list中
  40.                         for(File file : files){
  41.                                 if(file.isDirectory())
  42.                                         fileToList(file,list);
  43.                                 else if(file.isFile()){
  44.                                         String fileName = file.getName();
  45.                                         if(fileName.endsWith(".java")){
  46.                                                 list.add(file);
  47.                                         }
  48.                                 }
  49.                         }
  50.                 }
  51.         }
  52.         
  53.         public static void listToFile(List<File> list,File file) throws IOException{
  54.                 if(null != list && !list.isEmpty()){
  55.                         //判读存储绝对路径的文件是否存在
  56.                         if(!file.exists())
  57.                                 file.createNewFile();
  58.                         
  59.                         //将输出流与已知文件相关联
  60.                         BufferedWriter fw = new BufferedWriter(new FileWriter(file));
  61.                         
  62.                         //高级循环List,将文件绝对路径写入文件中
  63.                         for(File f : list){
  64.                                 String absolutePath = f.getAbsolutePath();
  65.                                 fw.write(absolutePath);
  66.                                 fw.newLine();
  67.                                 fw.flush();
  68.                         }
  69.                         
  70.                         //关闭流
  71.                         if(fw != null){
  72.                                 fw.close();
  73.                         }
  74.                 }
  75.         }
  76. }
复制代码

评分

参与人数 1黑马币 +30 收起 理由
hou604720966 + 30

查看全部评分

12 个回复

倒序浏览

回帖奖励 +10

nice,{:soso_e130:}
回复 使用道具 举报
尹丽峰 来自手机 高级黑马 2013-5-27 21:50:14
藤椅
不错…支持
回复 使用道具 举报
本帖最后由 朱晓杰 于 2013-5-27 22:20 编辑
hou604720966 发表于 2013-5-27 21:48
nice,

卧槽,设置错了,我要设置每次回帖奖励2的,怎么一下奖励了10个金币了
回复 使用道具 举报
二,赶紧改起
回复 使用道具 举报
hou604720966 发表于 2013-5-27 22:18
二,赶紧改起

改毛线啊,钱都没你拿跑咧!:@
回复 使用道具 举报
改天我给你点金币
回复 使用道具 举报
hou604720966 发表于 2013-5-27 22:25
改天我给你点金币

好的么~~~
回复 使用道具 举报

RE: 分享老毕的java.IO.File代码

朱晓杰 发表于 2013-5-27 22:39
好的么~~~

明天给你
回复 使用道具 举报
朱晓杰 发表于 2013-5-27 22:39
好的么~~~

给你了---{:2_40:}
回复 使用道具 举报
hou604720966 发表于 2013-5-28 13:04
给你了---

:L  给点儿就行了么
回复 使用道具 举报
朱晓杰 发表于 2013-5-28 22:56
给点儿就行了么

格兰,那你再给回来
回复 使用道具 举报
给力的啊 继续奋战中
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马