今天,在书上看到,一个从Path中获取信息的代码,手痒敲了一下。
代码清单:
import java.nio.file.Path;
import java.nio.file.Paths;
public class Listing_2_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Path listing=Paths.get("D:/迅雷下载/aa");//创建绝对路径
System.err.println("File Name ["+listing.getFileName()+"]");//获取文件名
System.out.println("Number of Name Elements in the Path ["+listing.getNameCount()+"]");
//获取名称元素量
System.out.println("Parent Path ["+listing.getParent()+"]");
System.out.println("Root of Path ["+listing.getRoot()+"]");
System.out.println("Subpath from Root,2 elements deep ["+listing.subpath(0,2)+"]");
//获取Path信息
}
}
控制台输出信息:
File Name [aa]Number of Name Elements in the Path [2]
Parent Path [D:\迅雷下载]
Root of Path [D:\]
Subpath from Root,2 elements deep [迅雷下载\aa]
值得注意的是
Path listing=Paths.get("D:/迅雷下载/aa");//创建绝对路径,这里表示子路路径从根二元素深
意思是
System.out.println("Subpath from Root,2 elements deep ["+listing.subpath(0,2)+"]");//这里listing.subpath(0,2)
传的参数就是(0,2)
如果写成这样就会报错
System.out.println("Subpath from Root,2 elements deep ["+listing.subpath(0,3)+"]");
报错信息是:
Exception in thread "main" java.lang.IllegalArgumentException
总的来说:
listing.subpath(0,2)//这里传的参数要在子路径从根深度范围区间内