• File、Paths和Files类的使用详解


    • Paths:通过get()方法返回一个Path对象,Path用于表示文件路径和文件。
    • Files:提供了大量处理文件的方法,例如文件复制、读取、写入,获取文件属性、快捷遍历文件目录等.....
    • Files 和 Paths是Java8新增的工具类,在处理文件方面功能非常强大。

     

     

    Paths类

            //以当前路径作为Path对象
            Path p = Paths.get(".");
            //使用传入的字符串返回一个Path对象
            Path p2 = Paths.get("D","ReviewIO","URL");
            //对应的路径
            System.out.println("p对象的对应路径:" + p.toString());
            System.out.println("p2对象的对应路径:" + p2.toString());
            //路径数量是以路径名的数量作为标准
            System.out.println("p路径数量:" + p.getNameCount());
            System.out.println("p2路径数量:" + p2.getNameCount());        
            //获取绝对路径
            System.out.println("p绝对路径:" + p.toAbsolutePath());
            System.out.println("p2绝对路径:" + p2.toAbsolutePath());
            //获取父路径
            System.out.println("p父路径:"  + p.getParent());
            System.out.println("p2父路径:" + p2.getParent());
            //获取p2对象的文件名或者文件目录名
            System.out.println(p2.getFileName());
            //通过Path对象返回一个分隔符对象
            Spliterator<Path> split = p2.spliterator();

    Paths类获取文件或文件目录路径可以使用采用多个字符串形式,也可以使用Path.get(D:\ReviewIO\URL)这种形式。返回的Path对象完全可以代替File类用于文件IO操作。

    Files类

    Files完成文件复制的方法,方法很简单。
    		Path source = Paths.get("F:","Java经典练习题.pdf");
    		Path dest = Paths.get("F:","files.txt");
    		File f = new File("F:\ok.pdf");
    		f.createNewFile();//如果f对象对应路径不存在就创建一个。	
    		System.out.println("source对象的文件路径:" + source);
    		//复制文件
    		Files.copy(source, new FileOutputStream(f));
     
    Files完成写入文件的方法
    		//写入内容到文件
    		ArrayList<String> as = new ArrayList<>();
    		as.add("A");
    		as.add("B");
    		as.add("C");
    		Files.write(dest, as, Charset.forName("GBK"));
    • 实例说明:个人觉得用起来不怎么方便。方法参数很多,尤其是Iterable<? extends CharSequence>参数,Iterable是个顶级接口,实现类几乎都是集合类,并且限制了类型通配符上限是CharSequence,这意味着要使用泛型为字符类型的集合类作为数据写入指定文件中,很麻烦。
    • 如果只是简单写入内容到文件中,建议使用重定向标准输出流,然后使用打印流写入,简单粗暴。
    使用Files类读取文件内容就不介绍了,个人觉得除了文件复制比较简洁通用,其他两个方法个人认为使用IO流或者NIO流比较方便一点。剩下来会介绍一些Files类的方法。
    	public static void main(String[] args) throws IOException  {
    		Path source = Paths.get("F:","Java经典练习题.pdf");	
    		/** 返回值为boolean的操作方法样例 */
    		System.out.println(Files.isHidden(source));//文件是否隐藏
    		System.out.println(Files.isExecutable(source));//文件是否可执行
    		System.out.println(Files.isWritable(source));//文件是否可写
    		//获取Paths对象对应的文件路径的文件储存
    		FileStore f  = Files.getFileStore(Paths.get("F:"));
    		FileStore e = Files.getFileStore(Paths.get("E:"));
    		System.out.println("F盘的总大小" + f.getTotalSpace());
    		System.out.println("F盘的可用大小" + f.getUsableSpace());
    		System.out.println("F盘的未分配空间" + f.getUnallocatedSpace());
    				
    	}

    除了以上的方法之外,Files类还提供遍历文件和目录、监控文件变化、读取和设置文件权限、查看文件属性的方法,功能十分强大。
  • 相关阅读:
    redis主从模式
    深入理解BigDecimal
    double使用BigDecimal进行计算出现精确度问题
    代理IP爬取和验证(快代理&西刺代理)
    Jsoup-简单爬取知乎推荐页面(附:get_agent())
    Jsoup-基础练习
    取数据超过内存限制的问题-解决方案(sample,takeSample,filter)
    说出你的故事:你为什么学爬虫
    hadoop第一次面到hr(品友互动)
    MapReduce本地运行模式wordcount实例(附:MapReduce原理简析)
  • 原文地址:https://www.cnblogs.com/fwnboke/p/8529484.html
Copyright © 2020-2023  润新知