黑马程序员——24,File类,Properties类,

来源:互联网 发布:淘宝优惠券怎么赚钱 编辑:程序博客网 时间:2024/06/16 03:39

------<ahref="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

          

         黑马程序员——24,File类,Properties类,

 

/*

File类的应用:

针对文件或者文件夹封装成对象进行操作.

 

*/

 import java.io.*;class Ioliou16{         publicstatic void main(String[] args)         {                                                                                               File   f1=new File("f:\\亚马逊\\亚马逊1号.txt");                   /*                   将亚马逊1号.txt封装成了对象,                   这句话既可以对已经存在的文件封装成对象,                   又可以对还没有存在的文件封装成对象。        */                    File f2=new  File("f:\\亚马逊","亚马逊1号.txt");                    /*                             这句话效果和前一句一样,                             只不过,把指定位置和文件分开成两个参数进行传递,更加灵活。                    */                    File f3=new  File("f:\\亚马逊");                    File f4=new  File(f3,"亚马逊1号.txt");                    soc("f1="+f1);//打印的是f1=f:\亚马逊\亚马逊1号.txt                    soc("f2="+f2);//打印的是f2=f:\亚马逊\亚马逊1号.txt                    soc("f3="+f3);//打印的是f3=f:\亚马逊                    soc("f4="+f4);//打印的是f4=f:\亚马逊\亚马逊1号.txt                    File f5=new  File("f:\\亚马逊"+File.separator+"亚马逊1号.txt");                    //File.separator表示仅仅是通用的分隔符                    soc("f5="+f5);//打印的是f5=f:\亚马逊\亚马逊1号.txt         }          public  static void  soc(Object  obj)         {             System.out.println(obj);                     }}

——————分割线——————

 

/*

File类的方法调用

*/

import java.io.*;class  Ioliou17{         public  static void  main(String[] args) throwsIOException         {                     //createNewFileDemo();                    //deleteDemo();                   //mkdirsDemo();                   //isAbsoluteDemo();                   //renameTo();                   lastModifiedDemo();         }         public  static void  createNewFileDemo()throwsIOException         {                        File  f=new File("f:\\mianbao.txt");                    //以下是在指定路径上创建文件                    boolean  b  =f.createNewFile();                    soc(b);                    /*                    createNewFile返回的是boolean型,                    如果在指定路径上创建文件mianbao.txt成功就返回true,否则false                    注意:如果指定路径下有同名文件就不会创建了返回的也是false                    还有涉及到IO流的一般都会抛出IO异常,不要忘记这一点。        如果是这样写的话:                           File f=new  File("f:\\面包\\mianbao.txt");                           boolean  b=f.createNewFile();                    这样是编译显示IO异常,找不到指定路径。                    (本人电脑f盘此时并没有面包这个文件夹)                    也就是说路径一定要是真实存在的。                    */                           }   public  static  void deleteDemo()throws IOException         {              File f=new File("f:\\mianbao.txt");                    f.createNewFile();//创建文件                    boolean b= f.delete();                    soc(b);                    /*                    delete方法删除文件,                    该方法返回的也是boolean型的, 删除成功则是返回true,否则false                    File类中还有一个方法deleteOnExit                    如果用在此例中f.deleteOnExit();表示java程序运行结束前删除文件        */          }         public  static void  existsDemo()throws  IOException         {              File f=new  File("e:\\JAVAwenjian\\Ioliou17\\Ioliou.17");                     boolean   b=f.exists();//判断文件是否在指定路径存在                    soc(b);         }         public  static void  mkdirDemo() throws  IOException         {              File f=new File("shuei\\klkl");                    boolean b=    f.mkdir();                       /*                    mkdir方法建立一级目录,                    如果建立指定目录成功返回true否则返回false                    下面有一种常见情况:                    一,          File  f=new  File("f://单");                      boolean b=f.mkdir();//返也恶意回true                      也可以指定哪一个盘存放                    二,                      File f=new File("shuei//klkl");                      boolean b=f.mkdir();//返也恶意回false                      只可以指定建立一级目录                    */                    soc(b);         }         public  static void  mkdirsDemo()throws  IOException         {               File f=new  File("菠菜\\好吃的菠菜\\更好吃的菠菜");                     boolean b=    f.mkdirs();                     //mkdirs方法可以建立多级目录                     soc(b);                     soc("f.exists()="+f.exists());                     //exists方法也可以用来判断指定路径下是否存在文件夹                      File f2=new  File("水果.txt");                     boolean  b2=f2.mkdirs();//这里建立的是名为“水果.txt”的文件夹!                     soc(b2);                     //所以mkdir和mkdirs方法都是建立的是文件夹!         }         public  static void  pd()         {               File f=new  File("f:\\狂热\\热.txt");                             boolean b1=     f.isFile();//判断封装的对象是否是文件                       boolean b2   =   f.isDirectory();//判断封装的对象是否是文件夹(路径)                     /*                     此例的情况是在指定路径下没有名为“热”的txt文件,                     所以,b1和b2都是false          */                      soc("b1="+b1+"   b2="+b2);                    }         public  static void  isAbsoluteDemo()throws  IOException         {                File f=new  File("玄幻1\\玄幻小说.txt"); //                      boolean  b=f.isAbsolute();                      /*                      isAbsolute方法判断是否是绝对路径,                      就算是文件不存在只要是绝对路径就返回true                      所谓的绝对路径就是从哪一个盘开始写起的才算是绝对路径                      */                      soc("b="+b);                                      soc("f.getPath()="+f.getPath());//f.getPath()=玄幻1\玄幻小说.txt                     soc("f.getParent()="+f.getParent());//f.getParent()=玄幻1                     // getParent方法返回的是绝对路径的父目录否则返回null                       soc("f.getAbsolute()="+f.getAbsolutePath());                      //打印的是f.getAbsolute()=E:\JAVAwenjian\玄幻1\玄幻小说.txt                      //getAbsolutePath方法返回的是绝对路径                     soc("f.getName()="+f.getName());//f.getName()=玄幻小说.txt                                          }         public  static void  lastModifiedDemo()         {                   File  f=new File("e:\\JAVAwenjian\\Ioliou17.java");                 long l=   f.lastModified();                            //lastModified方法返回的是文件最后一次被修改的时间          soc("f.lastModified()="+f.lastModified());                  }   public  static  void renameTo()         {               File f=new  File("f:\\无标题23copy.png");                      File f2=new  File("d:\\无标题23copy.png");                     f.renameTo(f2);                     //效果是:f盘中的无标题23copy.png被剪切到d盘上                File f3=new File("f:\\yuyuyu.java");                      File f4=new File("d:\\shue.java");                     f3.renameTo(f4);         //效果是:f盘中的yuyuyu.java剪切到d盘上并更名为shue.java          }         public  static void  soc(Object  obj)         {              System.out.println(obj);                }}

——————分割线——————

 

 

/*

File类中方法应用

文件列表

*/

import java.io.*;class  Ioliou18{         public  static void  main(String[] args)         {                   listDemo();       listRootsDemo();         }         public  static void  listDemo()    {                   soc("以下是listDemo--------");       File  f=new  File("f:\\yuyuyu.txt");                   String[]   s= f.list();                   /*                   list方法返回的是指定路径下(不能是指定文件)所有的文件名和文件夹名,                   如果指定的不是路径而是文件,那么会运行空指针异常        */                    for(String s2: s)                   {                    soc(s2);                   }         }         public  static void  listRootsDemo()         {                   soc("以下是listRootsDemo-------");              File[] f=File.listRoots();                     for(File f2:f)                    {                          soc(f2);                      }                    /*                    打印的是:以下是listRootsDemo-------C:\D:\E:\F:\G:\                    */          }         public  static void  soc(Object  obj)         {           System.out.println(obj);                                 }}

————————分割线——————

 

 

/*File对象的功能:文件列表如果只需要罗列出某个指定路径下的某种类型的文件名,就要用到FilenameFilter,其作用相当于过滤器,里面有一个方法boolean  accept(File dir,String  name)*/import java.io.*;class  Ioliou19{         public  static void  main(String[]args)throws  IOException         {         listDemo();           }         public  static void  listFilesDemo()         {                   soc("以下是listFilesDemo----");              File  f=new  File("f:\\");                    File[]  fs=     f.listFiles();                    for(File  zz:  fs)                    {                       soc(zz.getName()+"---"+zz.length());                             //如果是文件夹的话,打印出来的长度显示为0的                    }         }         public  static void  listDemo()         {                   //只是打印出f盘中的所有的.txt文件                   File  f=new File("f:\\");                   String[]  s   =f.list( new    FilenameFilter(){                      public boolean  accept(File  dir,String name)                      {                            return name.endsWith(".txt");                      }                   });       for(String   s2:s)                   {                       soc(s2);                      }                               }         public  static void  soc(Object  obj)         {              System.out.println(obj);                }}

————————分割线——————

 

/*File类的应用:罗列出指定路径下所有文件。这个就需要用到递归了,使用递归的时候要注意限制条件以及递归次数。*/import java.io.*;class Ioliou20{         public  static void  main(String[] args)         {                   File   f=new File("f:\\技术博客的图片\\");       method(f)   ;             }         public  static void  method(File   f)         {                   soc("这是---"+f);             File[]   fs=f.listFiles();                   for(int  x=0;x<fs.length;x++  )                   {                                                       if(fs[x].isDirectory())                method(fs[x]);                            /*                            因为目录中还有目录,                            所以可以自身调用自身函数,这种编程手法称为递归                            */                            else                        soc(fs[x]); //打印的是绝对路径                             }                             }         public  static void  soc(Object  obj)         {             System.out.println(obj);         }}

————————分割线——————

/*删除带内容的目录*/import java.io.*;class  Ioliou21{         publicstatic void main(String[] args)         {                   File    f=new  File("f:\\今天练习\\");       method(f);                           }         public  static  void  method(File    f)         {             File[]    fs=   f.listFiles();                    for(int  x=0;x<fs.length;x++)                   {                        if(fs[x].isDirectory())                                 {                                      method(fs[x]);                                 //soc(fs[x]+"--文件夹--"+fs[x].delete());                                                                   }                             else              soc(fs[x]+"---"+fs[x].delete());                                                }                   if(f.isDirectory())//这里加上这个判断把外层的文件夹删掉                            soc(f+"--文件夹--"+f.delete());                            }         public  static  void   soc(Object  obj)         {             System.out.println(obj);                      }}

——————分割线——————

 

/*建立java文件列表*/import java.io.*;import java.util.*;class  Ioliou22{         public  static void  main(String[] args)throws  IOException         {                   File  f=new File("f:\\java文件练习");       List<String>  li=new  ArrayList<String>();                   File   f2=new File("f:\\2015.8.10.txt");       method(f, li) ;                   method2(li,f2);                 }         public  static void  method(File  f,List<String>  li  )         {                    File[] fs     =f.listFiles();                    for(int x=0;x<fs.length;x++)                    {                          if(fs[x].isDirectory())                                        method(fs[x],li);                               else                                       if(fs[x].getName().endsWith(".java"))                      li.add(fs[x].getAbsolutePath());                                         }                                     }         public  static void method2(List<String>  li,File   f)throws  IOException         {          //FileWriter   fw=new   FileWriter(f.getAbsolutePath());                FileWriter   fw=new  FileWriter(f);                      //FileWriter构造函数也可以接受File类对象                      BufferedWriter   bfw=new  BufferedWriter(fw);                      for(String  s:li)                      {                           bfw.write(s);                                         bfw.newLine();                                     bfw.flush();                      }                      bfw.close();                              }         public  static void  soc(Object  obj)         {              System.out.println(obj);                       }}

——————分割线——————

 

/*IO流(Properties类的介绍) 同时具备Map集合特点,里面存放的都是字符串,没有泛型。Properties集合是Hashtable集合的子类Properties集合对象特点:可以用于键值对形式的配置文件,从文件中把数据加载到容器里面的时候需要固定格式:键=值 f:\\8.10号练习.txt的内容:bvuivb=8heauobgvjeb=02   qcdtycwqd=45buiverhbgvi=09oirjgbitr=20hbn=00iohoii=74oirjgbitr=55 */import java.io.*;import java.util.*;class  Ioliou23{         public  static void  main(String[] args)throws  IOException         {         method3();         }          public   static void  method()         {                   Properties   pro=new Properties();                   pro.setProperty("pupi","01");//加入元素                   pro.setProperty("huj","03");                   pro.setProperty("hjsbf","12");                   pro.setProperty("hjsbf","100");//注意有重复元素                   pro.setProperty("add","10");                   String   s=  pro.getProperty("hjsbf");//获取键所对应的值                   soc("s---"+s);                    Set   jian=   pro.stringPropertyNames();//把所有键放在Set集合里面                                        /*                    由于Properties具有Map集合的特点,所以,某对键值对重复了,                    那么新来的重复元素会覆盖前一个。                 */         }                        public   static void  method2()throws  IOException         {                                  Properties  pro=new  Properties();                     FileInputStream   fis=new FileInputStream("f:\\8.10号练习.txt");                     pro.load(fis); //将流的数据加载进集合                     /*                        f:\\8.10号练习.txt里面的数据要是以等号为分割符分割开来的                     */                    pro.setProperty("kkkkkk","kk");                     soc(pro);/*                     程序执行到这一行时,打开“8.10号练习.txt”文件来看,                     并没有上一行添加进的键值对"kkkkkk","kk"          */                      fis.close();                      /*打印结果:                      {bvuivb=8, oirjgbitr=55, kkkkkk=kk,heauobgvjeb=02   qcdtycwqd=45,buiverhbgvi=09, iohoii=74, hbn=00}                       */         }         public   static void  method3()throws  IOException         {                Properties   pro=new Properties();                      FileInputStream   fis=new FileInputStream("f:\\8.10号练习.txt");                      pro.load(fis);//加载文件数据到容器中          pro.setProperty("kkkkkk","kk");//添加元素到容器中                      FileOutputStream   fos=new FileOutputStream("f:\\8.10号练习.txt");                      pro.store(fos,"jk");//把pro容器里面的键值对保存在文件中相当于更新,其中jk仅仅为注释                               pro.list(System.out);                      /*                      这句话把容器pro的内容打印出来,打印的格式:          -- listing properties --          bvuivb=8          oirjgbitr=55          kkkkkk=kk          heauobgvjeb=02   qcdtycwqd=45          buiverhbgvi=09          hbn=00          iohoii=74           */           fis.close();                      fos.close();                              }         public   static void  soc(Object  obj)         {             System.out.println(obj);                 }}

——————分割线————————

 

 

/*Properties的练习:(配置文件的建立和使用)记录程序运行次数,次数已到就给出注册提示。 Map加IO技术就是Properties配置文件可以实现应用程序数据的共享。 */import java.io.*;import java.util.*;class  Ioliou24{         public  static void main(String[] args) throws IOException         {                   //File   f=new File("f:\\jilu.properties");//一般写后缀名.properties配置文件       File   f=new  File("f:\\jilu.ini");                   if(!f.exists())                            f.createNewFile();                    FileReader   fis=new  FileReader(f);                   //建立读取流对象,这里可以用字符流读取流又可以用字节流读取流                   Properties   pro=new Properties();//建立Properties对象                   pro.load(fis);//加载文件数据到容器中                   String   s= pro.getProperty("cishu");//获取值                   int  i=0;                   if(s==null)                   {              pro.setProperty("cishu","1");                                                      }                   else                   {                       i= Integer.parseInt(s);//把字符串转变成数字                            i++;                            if(i>=6)                                {                                    soc("次数超过了");                                      }                       pro.setProperty("cishu",i+"");                   }                           FileWriter   fos=new FileWriter(f);                   //建立写入流对象,这里可以用字符流写入流又可以用字节流写入流                    pro.store(fos,"haha");//把数据保存在文件中        fis.close();                    fos.close();          }         public  static void  soc(Object  obj)         {             System.out.println(obj) ;                }}

0 0
原创粉丝点击