栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

初学java第二阶段API第一天

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初学java第二阶段API第一天

笔记

File类

File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)

使用File可以做到:

  • 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
  • 2:创建和删除文件或目录
  • 3:访问一个目录中的子项

但是File不能访问文件数据.

public class FileDemo {
    public static void main(String[] args) {
        //使用File访问当前项目目录下的demo.txt文件
        
//        File file = new File("c:/xxx/xxx/xx/xxx.txt");
        File file = new File("./demo.txt");
        //获取名字
        String name = file.getName();
        System.out.println(name);
        //获取文件大小(单位是字节)
        long len = file.length();
        System.out.println(len+"字节");
        //是否可读可写
        boolean cr = file.canRead();
        boolean cw = file.canWrite();
        System.out.println("是否可读:"+cr);
        System.out.println("是否可写:"+cw);
        //是否隐藏
        boolean ih = file.isHidden();
        System.out.println("是否隐藏:"+ih);

    }

}

创建一个新文件

createNewFile()方法,可以创建一个新文件

package file;

import java.io.File;
import java.io.IOException;


public class CreateNewFileDemo {
    public static void main(String[] args) throws IOException {
        //在当前目录下新建一个文件:test.txt
        File file = new File("./test.txt");
        //boolean exists()判断当前File表示的位置是否已经实际存在该文件或目录
        if(file.exists()){
            System.out.println("该文件已存在!");
        }else{
            file.createNewFile();//将File表示的文件创建出来
            System.out.println("文件已创建!");
        }

    }
}

删除一个文件

delete()方法可以将File表示的文件删除

package file;

import java.io.File;


public class DeleteFileDemo {
    public static void main(String[] args) {
        //将当前目录下的test.txt文件删除
        
        File file = new File("test.txt");
        if(file.exists()){
            file.delete();
            System.out.println("文件已删除!");
        }else{
            System.out.println("文件不存在!");
        }
    }
}

创建目录

mkDir():创建当前File表示的目录

mkDirs():创建当前File表示的目录,同时将所有不存在的父目录一同创建

package file;

import java.io.File;


public class MkDirDemo {
    public static void main(String[] args) {
        //在当前目录下新建一个目录:demo
//        File dir = new File("demo");
        File dir = new File("./a/b/c/d/e/f");

        if(dir.exists()){
            System.out.println("该目录已存在!");
        }else{
//            dir.mkdir();//创建目录时要求所在的目录必须存在
            dir.mkdirs();//创建目录时会将路径上所有不存在的目录一同创建
            System.out.println("目录已创建!");
        }
    }
}

删除目录

delete()方法可以删除一个目录,但是只能删除空目录。

package file;

import java.io.File;


public class DeleteDirDemo {
    public static void main(String[] args) {
        //将当前目录下的demo目录删除
        File dir = new File("demo");
//        File dir = new File("a");
        if(dir.exists()){
            dir.delete();//delete方法删除目录时只能删除空目录
            System.out.println("目录已删除!");
        }else{
            System.out.println("目录不存在!");
        }
    }
}

访问一个目录中的所有子项

listFiles方法可以访问一个目录中的所有子项

package file;

import java.io.File;


public class ListFilesDemo1 {
    public static void main(String[] args) {
        //获取当前目录中的所有子项
        File dir = new File(".");
        
        if(dir.isDirectory()){
            
            File[] subs = dir.listFiles();
            System.out.println("当前目录包含"+subs.length+"个子项");
            for(int i=0;i 

获取目录中符合特定条件的子项

重载的listFiles方法:File[] listFiles(FileFilter)

该方法要求传入一个文件过滤器,并仅将满足该过滤器要求的子项返回。

package file;

import java.io.File;
import java.io.FileFilter;


public class ListFilesDemo2 {
    public static void main(String[] args) {
        
        File dir = new File(".");
        if(dir.isDirectory()){
//            FileFilter filter = new FileFilter(){//匿名内部类创建过滤器
//                public boolean accept(File file) {
//                    String name = file.getName();
//                    boolean starts = name.startsWith(".");//名字是否以"."开始
//                    System.out.println("过滤器过滤:"+name+",是否符合要求:"+starts);
//                    return starts;
//                }
//            };
//            File[] subs = dir.listFiles(filter);//方法内部会调用accept方法

            
            File[] subs = dir.listFiles(new FileFilter(){
                public boolean accept(File file) {
                    return file.getName().startsWith(".");
                }
            });
            System.out.println(subs.length);
        }
    }
}
Lambda表达式

JDK8之后,java支持了lambda表达式这个特性.

  • lambda可以用更精简的代码创建匿名内部类.但是该匿名内部类实现的接口只能有一个抽象方法,否则无法使用!
  • lambda表达式是编译器认可的,最终会将其改为内部类编译到class文件中
package lambda;

import java.io.File;
import java.io.FileFilter;


public class LambdaDemo {
    public static void main(String[] args) {
        //匿名内部类形式创建FileFilter
        FileFilter filter = new FileFilter() {
            public boolean accept(File file) {
                return file.getName().startsWith(".");
            }
        };

        FileFilter filter2 = (File file)->{
            return file.getName().startsWith(".");
        };

        //lambda表达式中参数的类型可以忽略不写
        FileFilter filter3 = (file)->{
            return file.getName().startsWith(".");
        };

        
        FileFilter filter4 = (file)->file.getName().startsWith(".");
    }
}

总结: File类

File类的每一个实例可以表示硬盘(文件系统)中的一个文件或目录(实际上表示的是一个抽象路径)

使用File可以做到:

  • 1:访问其表示的文件或目录的属性信息,例如:名字,大小,修改时间等等
  • 2:创建和删除文件或目录
  • 3:访问一个目录中的子项
常用构造器:
  • File(String pathname)
  • File(File parent,String name)可参考文档了解
常用方法:
  • length():返回一个long值,表示占用的磁盘空间,单位为字节。
  • canRead():File表示的文件或目录是否可读
  • canWrite():File表示的文件或目录是否可写
  • isHidden():File表示的文件或目录是否为隐藏的
  • createNewFile():创建一个新文件,如果指定的文件所在的目录不存在会抛出异常java.io.FileNotFoundException
  • mkdir:创建一个目录
  • mkdirs:创建一个目录,并且会将所有不存在的父目录一同创建出来,推荐使用。
  • delete():删除当前文件或目录,如果目录不是空的则删除失败。
  • exists():判断File表示的文件或目录是否真实存在。true:存在 false:不存在
  • isFile():判断当前File表示的是否为一个文件。
  • isDirectory():判断当前File表示的是否为一个目录
  • listFiles():获取File表示的目录中的所有子项
  • listFiles(FileFilter filter):获取File表示的目录中满足filter过滤器要求的所有子项

代码

 创建文件

package file;

import java.io.File;
import java.io.IOException;

public class CreateNewFileDemo {
    public static void main(String[] args) throws IOException {
        //在当前目录下新建一个文件:test.txt
        File  file = new File("test.txt");
        boolean exists = file.exists();//判断当前File表示或目录是否真是存在
        if (exists){
            System.out.println("该文件已经存在!");
        }else {
            file.createNewFile();//创建他
        }

    }
}

删除文件

package file;

import java.io.File;

public class DeleteFileDemo {
    public static void main(String[] args) {
     //将当前目录下的文件test.txt删除
        File file = new File("/text.txt");
        if (file.exists()){//如果该文件存在
            file.delete();
            System.out.println("文件已删除");
        }else{
            System.out.println("该文件不存在");
        }
    }
}

创建目录

package file;

import java.io.File;

public class MkdirDemo {
    public static void main(String[] args) {
        //在当前目录下新建一个目录:demo
//        File dir = new File("./demo");
        File dir = new File("./a/b/c/e/f/demo");
        if (dir.exists()){
            System.out.println("该目录已存在");
        }else {
             
//            dir.mkdir();//将该目录创建出来
            dir.mkdirs();//将该目录创建出来
            System.out.println("目录已创建");
        }
    }
}

删除目录

package file;

import java.io.File;

public class DeleteDirDemo {
    public static void main(String[] args) {
    //当前目录下得demo目录删除
        // File file = new File("./demo");
        File file =new File("./a");
        if (file.exists()){
            
            file.delete();
            System.out.println("目录已删除");
        }else {
            System.out.println("该目录不存在");
        }

创建100个文件加删除

package file;

import java.io.File;


public class Demo1 {
    public static void main(String[] args) {
        for (int i=1;i<=100;i++){
            File file = new File("./text"+i+".txt");
            //if(!file.exists()){//如果不存在
           //      file.createNewFile();
            //    }
            if (file.exists()){//如果文件存在
                file.delete();
            }
            //System.out.println("创建完毕");
            System.out.println("删除完毕");

        }
    }
}

 访问文件

package file;

import java.io.File;
import java.io.IOException;


public class FileDemo {
    public static void main(String[] args) throws IOException {
        //访问当前项目下的demo.txt文件
        
        //  D:/Robin/jsd2203_se/demo.txt
//        File file = new File("D:/Robin/jsd2203_se/demo.txt");
        File file = new File("./demo.txt");
         
        String name = file.getName();
        System.out.println(name);
        long len = file.length();
        System.out.println(len);
        boolean cr = file.canRead();//是否可读
        boolean cw = file.canWrite();//判断是否可写
        System.out.println("是否可读"+cr);
        System.out.println("是否可写"+cw);
        boolean ih = file.isHidden();
        System.out.println("是否隐蔽:"+ih);//是否隐蔽


       }


}

使用过虑器

package file;

import java.io.File;
import java.io.FileFilter;

public class ListFilesDemo2 {
    public static void main(String[] args) {
        //获取当前目录下名字中含有字母"s"的所有子项
        File dir = new File(".");
        if (dir.isDirectory()){
            FileFilter filter = new FileFilter() {
                
                public boolean accept(File file) {
                    String name = file.getName();//获取该文件或目录的名字
                    //                    int index = name.indexOf("s");
//                    return index>=0;
                    //字符串支持boolean contains(String str),用于判断当前字符串是否包含参数指定的内容
                    return name.contains("s");
                }
            };
            //将过滤器插到listFiles方法中,将每个子项都经过一次过滤器并返回符合要求的。
            File[]  subs = dir.listFiles(filter);
            System.out.println(subs.length);
            for (int i=0;i<=subs.length;i++){
                File sub = subs[i];
                System.out.println(sub.getName());
            }
        }
    }
}

查看时间

package file;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String[] args) {
        long start =System.currentTimeMillis();//获取当前系统时间的毫秒值
        System.out.println(start);
        long l =1651031076964l;
        Date date =new Date(l);//日期
        System.out.println(date);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");

        String line = sdf.format(date);
        System.out.println(line);

    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841455.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号