zoukankan      html  css  js  c++  java
  • java基础学习日志---File方法分析

    package FunDemo;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.Arrays;
    
    public class Demo {
    	public static void main(String[] args) throws Exception {
    		/*
    		 * 访问文件名相关的方法:
    		 *	String getName():返回此File对象所表示的文件名或路径名(如果是路径,则返回最后一级子路径名)
    		 *	String getPath():返回此File对象所对应的路径名
    		 *	String getAbsolutePath():返回此File对象所对应的绝对路径名
    		 *	File getAbsoluteFile():返回此File对象的绝对路径
    		 *	String getParent():返回此File对象所对应目录的父目录名
    		 */
    		String path1="H:/A/B/test.txt";
    		File file1=new File(path1);
    		System.out.println(file1);//H:AB	est.txt
    		//直接输出File的实体类,输出是该类创建时使用的参数,下一个实体类同理也是输出创建的参数
    	System.out.println("file路径为:" + file1.getPath());
            System.out.println("file名称:" + file1.getName());
            System.out.println("file绝对路径:" + file1.getAbsolutePath());
            System.out.println("file父目录:" + file1.getParent());
    	     /*
    	      * file路径为:H:AB	est.txt
    			file名称:test.txt
    			file绝对路径:H:AB	est.txt
    			file父目录:H:AB
    	      */
            String path2="test.txt";
    		File file2=new File(path2);
    		System.out.println(file2);//test.txt
    		////直接输出File的实体类,输出是该类创建时使用的参数
    		System.out.println("file路径为:" + file2.getPath());
            System.out.println("file名称:" + file2.getName());
            System.out.println("file绝对路径:" + file2.getAbsolutePath());
            System.out.println("file父目录:" + file2.getParent());
            /*
             *  file路径为:test.txt
    			file名称:test.txt
    			file绝对路径:C:JavaEclipseWorkSpaceUpan	est.txt
    			file父目录:null
             */
            /*
             * 可以看到,当使用绝对路径作为File对象的构造参数时,getPath和getAbsolutePath的返回结果是一致的,
             * 而使用相对路径时,则不然
             */
            /*
             * 文件检测相关的方法:
    
    			boolean exists():判断File对象所对应的文件或目录是否存在
    			boolean canWrite():判断File对象所对应的文件是否可写
    			boolean canRead():判断File对象所对应的文件是否可读
    			boolean canExecute():判断File对象所对应的文件是否执行
    			boolean isDirectory():判断File对象所对应的文件是否是目录
    			boolean isAbsolute():判断File对象所对应的文件或目录是否是绝对路径
             */
            System.out.println("-------------------------------------------------");
            if (!file1.exists()) {
                System.out.println(file1 + "并不存在");
            }
            if (file1.isAbsolute()) {
                System.out.println(file1 + "是绝对路径");
            } else {
                System.out.println(file1 + "不是绝对路径");
            }
            if (file2.isAbsolute()) {
            	System.out.println(file2 + "是绝对路径");
            } else {
            	System.out.println(file2 + "不是绝对路径");
            }
            /*
             * file1既不是文件也不是目录,下面的两个方法均返回false
             */
            if (file1.isFile()) {
                System.out.println(file1 + "为文件");
            }
            if (file1.isDirectory()) {
                System.out.println(file1 + "为目录");
            }
            if (file1.canRead()) {
                System.out.println(file1 + "可读");
            } else {
                System.out.println(file1 + "不可读");
            }
            if (file1.canWrite()) {
                System.out.println(file1 + "可写");
            } else {
                System.out.println(file1 + "不可写");
            }
            if (file1.canExecute()) {
                System.out.println(file1 + "可执行");
            } else {
                System.out.println(file1 + "不可执行");
            }
            /*
             *  H:AB	est.txt并不存在
    			H:AB	est.txt是绝对路径
    			test.txt不是绝对路径
    			H:AB	est.txt不可读
    			H:AB	est.txt不可写
    			H:AB	est.txt不可执行
             */
            
            /*
             * 目录操作的相关方法:
    
    			boolean mkdir():创建此抽象路径名指定的目录。如果父目录不存在则创建不成功。
    			boolean mkdirs(),创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
    			String[] list():列出File对象的所有子文件名和路径名,返回String数组
    			File[] listFiles():列出File对象的所有子文件和路径,返回File数组
    			static File[] listRoots():列出系统所有根路径
             */
         
            System.out.println(file1.mkdirs());
    		/*
    		 * 此时返回true,但是其中存在一个问题,创建的目录中,AB	est.txt,test.txt也是一个文件夹
    		 */
            System.out.println(Arrays.toString(File.listRoots()));
            
            
            /*
             * 获取文件常规信息:
    			long lastModified():返回文件的最后修改时间
    			long length():返回文件内容的长度
    		       文件操作相关方法:
    			boolean createNewFile():
    				当File对象所对应的文件不存在时,创建一个File对象所指定的新文件,如果创建成功则返回true,否则返回false
    			boolean delete():删除File对象所对应的文件或路径
    			static File createTempFile(String prefix, String suffix, File directory):
    				在指定的File目录下创建一个临时的空文件,使用给定前缀、系统生成的随机数和给定后缀作为文件名,
    				如果没有传入File目录对象,则默认在临时文件目录创建临时文件
    			void deleteOnExit():File对象会在JVM退出时删除所指定的文件或目录
    			boolean renameTo(File dest):
    				重命名此File对象所对应的文件或目录,如果命名成功则返回true,否则返回false
     
             */
            File file4 = new File("F:/AAA/BBB/CCC");
            if (file4.mkdirs()) {
                System.out.println("多级层文件夹创建成功!创建后的文件目录为:" + file4.getPath() + ",上级文件为:" + file4.getParent());
            }
    
            File file5 = new File("F:/AAA/BBB/CCC/DDD");
            if (file5.mkdir()) {
                System.out.println("单文件夹 DDD 创建成功!创建后的文件目录为:" + file5.getPath() + ",上级文件为:" + file5.getParent());
            }
    
            File file6 = new File("F:/AAA/BBB/CCC/DDD","mytest.txt");
            try {
                if (file6.createNewFile()) {
                    System.out.println("多级层文件夹下文件创建成功!创建了的文件为:" + file6.getAbsolutePath() + ",上级文件为:" + file6.getParent());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            /*
             * 多级层文件夹创建成功!创建后的文件目录为:F:AAABBBCCC,上级文件为:F:AAABBB
    			单文件夹 DDD 创建成功!创建后的文件目录为:F:AAABBBCCCDDD,上级文件为:F:AAABBBCCC
    			多级层文件夹下文件创建成功!创建了的文件为:F:AAABBBCCCDDDmytest.txt,上级文件为:F:AAABBBCCCDDD
             *  这样就很清楚了,mkdir() 创建单个文件夹,要确保它的上级文件夹存在。
    		  	mkdirs() 创建多个文件夹,并且不需要保证它的上级文件夹存在。
    		  	将文件输出到文件夹下要确保目标文件夹存在。
             */
          
    	}
    }
    

  • 相关阅读:
    git 仓库过大,clone不下来的解决办法
    vue项目使用elementUI pagination 实现前端分页
    Element中 Table表格数据居中显示设置
    css实现鼠标悬浮图片放大
    vue中配置开发环境、测试环境、生产环境
    vue中@keyup.enter没有作用
    LambdaToSql(轻量级ORM) 入门篇 开源项目
    04.如何升级扩展以支持Visual Studio 2019
    03. 将pdb调试文件包含到.vsix包中
    02.vs插件 获取项目和解决方案路径
  • 原文地址:https://www.cnblogs.com/sunqiangstyle/p/10312317.html
Copyright © 2011-2022 走看看