Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 263|回复: 0

[JavaIO学习]学java7中的IO新类Path

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-31 23:58:09 | 显示全部楼层 |阅读模式
    创建Path实例
         Path实例包含了指定文件或目录位置的信息,在实例化Path类时,需要指定一个或多个目录或文件名。路径的根目录不是必须的;路径信息可能仅仅是一个目录或文件的名称。最简单的创建Path实例的方式就是使用Paths(注意这里有一个s)类的get方法:

    Path p1 = Paths.get("/tmp/foo");
    Path p2 = Paths.get(args[0]);
    Path p3 = Paths.get("file:///Users/joe/FileTest.java");  Path类接受String或URI作为参数。  获取路径信息
        File System一般是树形结构,因此我们可以把Path理解为按顺序存储的一系列的名称(目录名称和文件名称)。目录结构中最高一层的目录名就是序列中 index为0的那一个,目录结构中最低一层的目录名或者文件名就是序列中index为n-1的那一个(这里n是路径中层次的数目)。
         Path类提供方法来通过index获取序列中的一个元素或一个子序列。  
      
       
       

         
       

         
       
      
    1. import java.nio.file.Paths;
    2. import java.nio.file.Path;
    3. public class Test{
    4.   public static void main(String args[]){
    5.     Path path = Paths.get("C:\home\joe\foo");    // Microsoft Windows syntax   
    6.     //Path path = Paths.get("/home/joe/foo");    // Solaris syntax   
    7.      System.out.println("path.toString()--"+path.toString());     
    8.     System.out.println("path.getName(1)--"+path.getName(1));      
    9.     System.out.println(path.getName(0));     
    10.     System.out.println(path.getNameCount());     
    11.     System.out.println(path.subpath(0,2));     
    12.     System.out.println(path.getParent());     
    13.     System.out.println(path.getRoot());     
    14.     }
    15. }
    复制代码
    运行:
    C:ex>java Test
    path.toString()--C:homejoefoo
    path.getName(1)--joe
    getName(0): home
    getNameCount: 3
    homejoe
    getParent: C:homejoe
    getRoot: C:
    1. //java7新特性IO操作Path
    2.   
    3. import java.io.BufferedReader;  
    4. import java.io.File;  
    5. import java.io.IOException;  
    6. import java.nio.charset.Charset;  
    7. import java.nio.file.FileSystems;  
    8. import java.nio.file.Files;  
    9. import java.nio.file.Path;  
    10. import java.nio.file.Paths;  
    11. /**
    12. * Path是java1.7的nio.file包中的文件
    13. * 操作的重要切入点,作为基础有必要了解下
    14. * @author zKF57533
    15. */  
    16. public class TestPath {  
    17.     public static void main(String[] args) {  
    18.         //获得path方法一,c:/ex/access.log   
    19.         Path path = FileSystems.getDefault().getPath("c:/ex", "access.log");  
    20.         System.out.println(path.getNameCount());  
    21.         //获得path方法二,用File的toPath()方法获得Path对象   
    22.         File file = new File("e:/ex/access.log");  
    23.         Path pathOther = file.toPath();  
    24.         //0,说明这两个path是相等的   
    25.         System.out.println(path.compareTo(pathOther));  
    26.         //获得path方法三   
    27.         Path path3 = Paths.get("c:/ex", "access.log");  
    28.         System.out.println(path3.toString());  
    29.          
    30.         //join two paths   
    31.         Path path4 = Paths.get("c:/ex");  
    32.         System.out.println("path4: " + path4.resolve("access.log"));  
    33.         System.out.println("--------------分割线---------------");  
    34.         try {  
    35.             if(Files.isReadable(path)){  
    36.                 //注意此处的newBufferedRead的charset参数,如果和所要读取的文件的编码不一致,则会抛出异常   
    37.                 //java的新特性,不用自己关闭流   
    38.                 BufferedReader br = Files.newBufferedReader(path, Charset.defaultCharset());
    39.                 //new BufferedReader(new FileReader(new File("e:/logs/access.log")));//   
    40.                 String line = "";  
    41.                 while((line = br.readLine()) != null){  
    42.                     System.out.println(line);  
    43.                 }  
    44.             }else{  
    45.                 System.err.println("cannot readable");  
    46.             }  
    47.         } catch (IOException e) {  
    48.             System.err.println("error charset");  
    49.         }  
    50.          
    51.     }  
    52.   
    53. }  
    复制代码
    运行:
    C:ex>java TestPath
    2
    -2
    c:exaccess.log
    path4: c:exaccess.log
    --------------分割线---------------
    aa
    bb
    cc




      
      
       
       

         
       

         
       
      
    复制代码

    源码下载:http://file.javaxxz.com/2014/10/31/235809015.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-5-18 22:37 , Processed in 0.379540 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表