首页 > 编程语言 >Java第二十课_File

Java第二十课_File

时间:2023-12-29 12:33:38浏览次数:36  
标签:Java File System 路径名 file println 第二十 out

1.File

  • File常用函数

    
        public static void main(String[] args) throws IOException {
            // 相对路径 : IO流默认目录 : 当前项目工程开始自己算
            // 绝对路径 : 带盘符的路径 :
            // 网络路径 : https://img2.baidu.com/it/u=3164322677,862193441&fm=253&fmt=auto&app=120&f=GIF?w=569&h=362
            // File : 文件(带后缀的)和目录(文件夹)
    
            // 静态字段 :
            System.out.println("File.pathSeparator = " + File.pathSeparator);
            System.out.println("File.pathSeparatorChar = " + File.pathSeparatorChar);
            System.out.println("File.separator = " + File.separator);
            System.out.println("File.separatorChar = " + File.separatorChar);
    
            File file = new File("a.txt");// 和文件建立联系. 和IO流不同, 不存在的文件不会自动新建
            // File file = new File("F:\\IdeaProjects" + File.separatorChar + "JavaBase/a.txt");
    
            // 创建文件
            boolean newFile = file.createNewFile();
            System.out.println("newFile = " + newFile);
    
            System.out.println("file.exists() = " + file.exists());// 判断文件存在吗
            // boolean canExecute() 文件是否可用
            //  boolean canRead()  可读吗
            //  boolean canWrite()  可写吗
            System.out.println("file.canExecute() = " + file.canExecute());
            System.out.println("file.canRead() = " + file.canRead());
            System.out.println("file.canWrite() = " + file.canWrite());
    
            // boolean delete()
            //           删除此抽象路径名表示的文件或目录
            // System.out.println("file.delete() = " + file.delete());
    
            //  boolean equals(Object obj) : 路径
            //           测试此抽象路径名与给定对象是否相等。
            //  File getAbsoluteFile()
            //           返回此抽象路径名的绝对路径名形式。
            //  String getAbsolutePath()
            //           返回此抽象路径名的绝对路径名字符串。
            System.out.println("file.getAbsolutePath() = " + file.getAbsolutePath());
            System.out.println("file.getAbsoluteFile() = " + file.getAbsoluteFile());// 会自动转化成可读懂的格式
    
            //  String getName()
            //           返回由此抽象路径名表示的文件或目录的名称。
            System.out.println("file.getName() = " + file.getName());
            //  String getParent()
            //           返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
            System.out.println("file.getParent() = " + file.getParent());
            //  File getParentFile()
            //           返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
            System.out.println("file.getParentFile() = " + file.getParentFile());
    
            //  boolean isAbsolute()
            //           测试此抽象路径名是否为绝对路径名。
            System.out.println("file.isAbsolute() = " + file.isAbsolute());
            //  boolean isDirectory()
            //           测试此抽象路径名表示的文件是否是一个目录。
            System.out.println("file.isDirectory() = " + file.isDirectory());
            //  boolean isFile()
            //           测试此抽象路径名表示的文件是否是一个标准文件。
            System.out.println("file.isFile() = " + file.isFile());
            //  boolean isHidden()
            //           测试此抽象路径名指定的文件是否是一个隐藏文件。
            System.out.println("file.isHidden() = " + file.isHidden());
            //  long lastModified()
            //           返回此抽象路径名表示的文件最后一次被修改的时间。
            System.out.println("file.lastModified() = " + file.lastModified());
            System.out.println(new SimpleDateFormat("yyyy/MM/dd kk:mm:ss SSS").format(new Date(file.lastModified())));
            //  long length()
            //           返回由此抽象路径名表示的文件的长度。
            System.out.println("file.length = " + file.length());
    
            // boolean mkdir()
            //           创建此抽象路径名指定的目录。
            // new File("F:\\aa\\bb\\cc").mkdir();
            System.out.println("File(\"F:\\\\aa\\\\bb\\\\cc\").mkdirs() = " + new File("F:\\aa\\bb\\cc").mkdirs());
            //  boolean mkdirs()
            //           创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
            //  boolean renameTo(File dest)
            //           重新命名此抽象路径名表示的文件。
            file.renameTo(new File("x.txt"));
        }
    
  • 遍历文件系统根

        public static void main(String[] args) {
            // static File[] listRoots()
            //           列出可用的文件系统根。
            File[] files = File.listRoots();
            Stream<File> stream = Arrays.stream(files);
            stream.forEach(System.out::println);
            System.out.println("------------------------------------");
    
            String[] list = files[files.length-1].list();
            Arrays.stream(list).forEach(System.out::println);
        }
    
  • 递归遍历所有文件

        public static void main(String[] args) {
            // 打印目录树 : 递归
            printAllFile(new File("I:\\"));
        }
    
        public static void printAllFile(File file){
            if (!file.exists()) {// 可能有异常时, 不使用try, 自己编程格式如下
                throw new IllegalArgumentException("文件 " + file.getName() + " 不存在!");
            }
            if (file.isFile()) {
                throw new IllegalArgumentException("文件 " + file.getName() + " 不是目录!");
            }
            File[] files = file.listFiles();
            if (files != null && files.length > 0) {
                Arrays.stream(files).forEach((fileName)->{
                    if (fileName.isFile()) {
                        System.out.println(fileName);
                    } else {
                        printAllFile(fileName);// 递归, 从根目录开始一层层遍历所有文件夹
                    }
                });
            }
        }
    

2.网络

  • import导入同名类

    import java.util.*;// 引入该包下所有的类
    
    /**
     * @author 张晗
     * @create 2023-12-29 13:08
     * @desc
     */
    public class Practice01 {
    
        public static void main(String[] args) {
            // import : 简化书写
            Date date = new Date();
            // 当有两个同名类时, 只能导一个包, 另一个类写全名(util.Date和sql.Date)
            java.sql.Date date1 = new java.sql.Date(0L);
        }
    }
    
  • import导入静态函数

    import java.util.Arrays;
    import static java.util.Arrays.sort;// 引入该类下静态函数
    import static java.util.Arrays.stream;
    import static java.util.Arrays.fill;
    import static java.util.Arrays.*;// 引入该类下所有的静态函数
    
    /**
     * @author 张晗
     * @create 2023-12-29 13:11
     * @desc
     */
    public class Practice02 {
    
        public static void main(String[] args) {
            int[] ints = {};
            sort(ints);
            stream(ints);
            fill(ints, 110);
            copyOf(ints, 10);
            Arrays.toString(ints);
            Arrays.equals(ints, ints);
        }
    }
    

标签:Java,File,System,路径名,file,println,第二十,out
From: https://www.cnblogs.com/shinya/p/17934629.html

相关文章

  • linux下java调用netcore程序
    代码备份仅供参考自述文件#JavaCallCSharpJavacallC#libbuildwith.NETCORE2.0viaC++aswraperThecodeisbasedon[examplefromcoreCLR](https://github.com/dotnet/coreclr/tree/master/src/coreclr/hosts/unixcoreruncommon)JavausingJNItocallC++......
  • Linux下netcore调用java代码
    代码备份,仅供参考自述文件#CSharpCallJavaC#invokeJavaviaC++asawraper.C#invokeC++viaP/invoke.C++startsaJVMtoruntheJavacode.C#codeshouldbecompiledin.NETcore2.0YoushouldedittheMakefiletosetthePathofJavaSDKexpor......
  • 关于IDEA报 java: 无法访问java.lang.Record 找不到java.lang.Record的类文件
    IDEA一直报java:无法访问java.lang.Record  找不到java.lang.Record的类文件,但是我已经把所有的java配置改成了17。最后发现是pom文件中org.apache.maven.plugins配置没有改。属性修改如下:<configuration><compilerVersion>1.8</compilerVersion>-......
  • 【随手记录】Apache-JMeter部署银河麒麟报错: jmeter module java.desktop does not "o
    操作系统:Linux0012.novalocal4.19.90-17.ky10.aarch64#1SMPSunJun2814:27:40CST2020aarch64aarch64aarch64GNU/LinuxJDK版本:java17.0.82023-07-18LTSJava(TM)SERuntimeEnvironment(build17.0.8+9-LTS-211)JavaHotSpot(TM)64-BitServerVM(build......
  • 「Java开发指南」如何用MyEclipse搭建JSF/Primefaces和Spring(二)
    本教程将引导大家完成为JavaServerFaces(JSF)生成软件组件的过程,在本文中您将学习到如何:从数据库表到现有项目搭建配置支持JSF2.0的服务器部署搭建的应用程序在上文中,我们介绍了如何创建一个Web项目、从数据库表搭建及配置服务器等,本文将继续介绍如何部署应用程序!更多MyE......
  • The JAVA_HOME environment variable is not defined correctly,解决
    k8s集成jenkins,在进行子工程mvncleaninstall过程中报截图中错误,经过排除是之前在系统管理->系统配置中,添加的JAVA_HOME环境变量不对,可能目前我使用的jenkins是通过k8sPod生成的,并不是直接在主机上安装的,所以此处填的JAVA_HOMEjenkins识别不到,所以报错.取消后不再报错.......
  • Java中的非对称加密算法原理与实现
    引言在当今的信息时代,数据安全已经成为了一个至关重要的问题。加密技术作为保障信息安全的重要手段,受到了广泛的应用和关注。其中,非对称加密算法因其高效、安全的特点,在众多加密方法中独树一帜。本篇文章将详细介绍Java中的非对称加密算法原理及其实现方式。一、非对称加密算法概述......
  • 无涯教程-Java NIO - Pipe(管道)
    在Java中,NIOPipe(管道)是用于在两个线程之间写入和读取数据的组件。Pipe(管道) 主要由两个通道组成,负责数据传输,在两个组成通道中,一个称为接收器通道,主要用于写入数据,另一个称为源通道,其主要目的是从接收器通道读取数据。管道类函数open()   -此方法用于获取Pipe的......
  • idea 项目加载 全线飘红, @Service飘红,连 import java.util.List; 也飘红,终极解决方案
    常规方案:1、maven,检查maven配置,重新加载maven依赖,重新加载项目,把maven的本地私库删了重新下载2、检查idea配置,jdk配置,加载的项目的配置,idea清理缓存重启,等等3、是否更新了其他idea配置,比如git忽略文件里是否添加了*.class 4、重新安装idea5、及其他以上方案自行百度,都可以......
  • dockerfile多阶段构建最小镜像
    如何将Go项目与Docker结合实现高效部署原创 云原生Go 源自开发者 2023-12-2907:00 发表于广东 听全文源自开发者专注于提供关于Go语言的实用教程、案例分析、最新趋势,以及云原生技术的深度解析和实践经验分享。56篇原创内容公众号在现代软件开发......