黑马程序员--io之File类

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——

io中文件的操作

File f=new File(“c:/a”);

1:关于文件的操作,文件的创建:createNewFile ,文件的删除:delete 返回的值都是boolean

2:判断文件是否存在 : exists() 返回boolean ,创建文件夹 : mkdir() 创建一级目录 mkdirs() 创建多个目录

3:判断是否是文件 : isFile() 返回boolean 判断是否是文件夹 : isDirectory() ff.isHidden()判断文件是否隐藏

4:windows中删除文件的原理,如果文件夹里有文件,先删除文件,然后删除文件夹。

package com.itheima1.www;

import java.io.File;

import java.io.FilenameFilter;

import java.io.IOException;

/**

*

* @author myluo

*

*/

public class IOFile {

public static void main(String[] args) {

         //  method1();
          // method2();
        //   method3();
        //  method4();
    File    f=new  File("e:/kankan");
    //method5(f);
     int  i=-1;
    // method6(f,i);
    method6(f);
}

//文件的删除,windows删除文件的原理,如果文件夹里有文件,先删除文件,然后删除文件夹。。。
private static void method6(File f) {
    // TODO Auto-generated method stub
     //判断文件是否存在
        if (f.exists()) {
               File   []   file=f.listFiles();
            for (File ff : file) {
                //判断是否是文件夹
                if (ff.isDirectory()) {
                          method6(ff);
                }else{
                    //如果是文件就删除。。
                    ff.delete();
                }

            }

            //文件删除完,就删除文件夹
            f.delete();

        }
}

//遍历文件 打印层级关系
private static void method6(File   f,int  i) {
    // TODO Auto-generated method stub
          i++;
          File  []   file=f.listFiles();
          for(File  ff:  file){
                     if(ff.isDirectory()){
                                method6(ff,i);
                     }
                    execute(getNbsp(i)+ff.getName());
          }
}

//打印空格
 private static  String   getNbsp(int  num){
     StringBuffer   sb=new   StringBuffer();
     for(int  i=0;i<num;i++){
              sb.append("|---");
     }
     return   sb.toString();
 }

//用递归的方法遍历文件
private static void method5(File   f) {
    // TODO Auto-generated method stub
    File  []   file=f.listFiles();
    int  i=0;
    for(int  j=0;j<file.length;j++){
             i++;
               if(file[j].isDirectory()){
                       method5(file[j]);
               }else{
                   execute(file[j].toString());
               }

    }

}

//根据文件的后缀名过滤文件(filter),
private static void method4() {
    // TODO Auto-generated method stub
          File   f=new  File("E:\\迅雷下载");
         String  []  str= f.list(new FilenameFilter(){

            @Override
            //file  文件的目录    name   文件的名字
            public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                return name.endsWith(".exe");//文件是否符合此后缀?  true: false;
            }

          });

         for(String   ss:str){
              execute("doc==="+ss);
         }
       execute("=====================================================");
       //获取指定文件夹下的文件   1:File    f=new  File("c:/");        String  []   str=f.list();
                                     //方法2:   File    f=new  File("c:/");     f.
       File   fe=new  File("c:/");
       File    []   ff=fe.listFiles();
       for(File   d:ff){
                 execute("e盘下所有文件:"+d+"==="+d.length());
       }

}

//文件信息的获取
private static void method3() {

         File   f1=new   File("f:/a.txt");
         execute("获取文件名字:"+f1.getName());
         execute("获取文件父目录:"+f1.getParent());
         execute("获取文件的绝对流经:"+f1.getAbsolutePath());
         execute("获取文件的大小:"+f1.length());
         File  f2=new  File("f:/a1.txt");
         execute("修改文件的名:"+f1.renameTo(f2));
    //获取所有磁盘
       File   []  str=  f1.listRoots();
         for(File    a: str ){
             execute("磁盘:"+a);
             File  f=new  File(a.toString());
             String[] list = f.list();

             execute("=========================================================");

         }
         //获取指定文件下的所有文件
        File  f12=new  File("F:/BaiduYunDownload/Java高级视频_IO输入与输出/第三部分");
        String[] list = f12.list();
        for(String  s:list){
            execute("文件:"+s);
        }

        File   fl=new  File("f:/");
       String   []  st= fl.list();
        for(String   ss:st){
                   execute("f==="+ss);
        }
}

//关于文件的操作,文件的创建:createNewFile   ,文件的删除:delete   返回的值都是boolean
//判断文件是否存在   :   exists()  返回boolean     ,创建文件夹  :  mkdir()  创建一级目录  mkdirs() 创建多个目录
//判断是否是文件  :  isFile()   返回boolean     判断是否是文件夹   :  isDirectory()
private static void method2() {
    // TODO Auto-generated method stub

    File   f7=new  File("E:/a/luo.txt");
    try {
        f7.createNewFile();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    boolean  is=f7.exists();
    boolean   fl=f7.isFile();
    boolean flg=f7.isDirectory();
    if (is) {
        if (fl) {
            execute("是文件");
        } else {
            execute("不是文件");
        }
        if (flg) {
            execute("是文件夹");
        } else {
            execute("不是文件夹");
        }
    }
    File  f1=new    File("e:/abc/ab/a");

      boolean  flag5=f1.mkdirs();
     if(flag5){
           execute("文件夹创建成功");
     }else{
         execute("文件夹创建失败");
     }

          File  file=new   File("fei.txt");
          //创建文件result
          boolean flag;
          //删除文件result
          boolean  flag2;
          //文件是否存在result
          boolean   flag3;
          try {
            flag = file.createNewFile();
            if(flag){
                        execute("文件创建=="+true);
              }else{
                       execute("文件创建=="+false);
              }
            File  file2=new   File("xx.txt");
            flag3=file2.exists();
            if(flag3){
                  execute("文件存在");
            }else{
                execute("文件不存在");
            }

            flag2=file.delete();
            if(flag2){
                  execute("删除成功");
            }else{
                execute("删除失败");
            }

        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

}

//方法一    文件与file类的出现弥补了流的不足,流是用来操作数据的,不能操作文件,file可以弥补流的不足
private static void method1() {
    // TODO Auto-generated method stub
             //file的创建方式1
             File  file1=new  File("luo.txt");
             //file的创建方式2
             File   file2=new  File("E:/a","fei.txt");
             //file的创建方式3
             File   file3=new  File("E:/a");
             File   file4=new  File(file3,"xiao.txt");
             execute(file1+" : "+file2+ " :  "+file4);

             //分隔符的跨平台
             File  file5=new  File("e:/a/luo.txt");
             File  file6=new  File("e:"+File.separator+"a"+File.separator+"luo.txt");

             execute(file5+"======="+file6);
}

 private   static   void  execute(String   str){
     System.out.println(str);
 }

}

时间: 2024-11-07 19:21:19

黑马程序员--io之File类的相关文章

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

------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- /* File类的应用: 针对文件或者文件夹封装成对象进行操作. */ import java.io.*; class Ioliou16 { publicstatic void main(String[] args) { File f1=n

黑马程序员------Java中File类学习总结

Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! File类 1.用来将文件或者文件夹封装成对象,以方便对文件和文件夹进行操作. 2.File对象可以作为参数传递给流的构造函数. File对象功能: 创建和删除: 1.boolean createNewFile(): 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件. 2.boolean mkdir():创建此抽象路径名指定的目录. 3.boolean mkdirs():创建此抽象路径

黑马程序员—io之File的合并(SequenceInputStream)与分割

--Java培训.Android培训.iOS培训..Net培训.期待与您交流! -- 1:文件的合并SequenceInputStream(读取多个文件,写入一个文件中) 获取Enumeration有两种方式 1.1:Vector ve=new Vector(); Enumeration enu = ve.elements(); 1.2:List lst=new ArrayList(); Iterator ite =lst.iterator(); 第二种执行效率要高 2:文件的分割(读取一个文件

黑马程序员——IO篇

------- android培训.java培训.期待与您交流! ---------- IO(Input Output)流 1.IO流用来处理设备之间的数据传输 2.Java对数据的操作是通过流的方式 3.Java用于操作流的对象都在IO包中 4.流按操作数据分为两种:字节流与字符流 . 字符流的数据字节流其实都能处理,因为无论什么在计算机上最后都是以字节存在的,但是其中有一部分数据它是以文本形式存在的,所以为了方便有了字符流,字符流里融合了编码表,而只有文字用到了编码表,所以字符流用来处理文本

黑马程序员 IO流 文件的分割与合并

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ----------------------package cn.itcast.IO; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;

黑马程序员------IO(五)

黑马程序员------IO(五) 1.1  操作对象(示例1)ObjectInputStream与ObjectOutputStream 被操作的对象需要实现Serializable. Serializable:用于给被序列化的类加入ID号,用于判断类和对象是否是同一个版本 类通过实现java.io.Serializable接口以启用序列化功能,Serializable只是一个标记接口. 1 示例1: 2 import java.io.*; 3 4 class ObjectStreamDemo 5

黑马程序员_Java基础String类

- - - - - android培训.java培训.期待与您交流! - - - - - - - String是一个对象 String不属于8种基本数据类型(byte, char, short, int, float, long, double, boolean),String是对象,所以其默认值是null. String是一种特殊的对象,有其它对象没有的一些特性,通过JDK发现: public final class String implements java.io.Serializable

黑马程序员——Java集合工具类和泛型

Collections工具类和泛型 Collections和Collection Collections和Collection是不同的,Collections是工具类,用来操作集合的,而Collection是集合接口.Collections中有一系列的静态方法用来操作集合,但是不能更改集合内容.比如不能set()不能remove()元素,可以替换全部元素或者添加同一个元素. static List<String> list =Arrays .asList("one Two three

黑马程序员——IO流总结

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 什么是IO流? IO流是用来处理设备之间的数据传输 有哪些流? 流按操作数据的种类分为:字符流和字节流 流按流的方向分:输入流和输出流 字节流的基类:InputStream和OutputStream 字符流的基类:Writer和Reader 常用写字符流:FileWriter,BufferedWriter,OutputStreamWriter,PrinterWriter 常用读字符流  : F