Last renew: April 7, 2022 pm
注:本文仅为个人学习笔记,无任何版权。
打开并读取文件对于大多数编程语言来说是非常实用的。Java8与java7新增的java.nio.file
包以及streams与文件结合使得文件操作编程变得十分简单。
对于文件操作来说,最基本的两个组件是
- 文件或者目录的路径;
- 文件本身。
文件和目录路径
一个Path
对象表示一个文件或者目录的路径,可以跨操作系统和文件系统。
java.nio.file.Path
包含一个重载方法static get()
,该方法接受一系列String
字符串或一个URI作为参数,进行转换返回一个Path
对象:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| import java.nio.file.*; import java.net.URI; import java.io.File; import java.io.IOException;
public class PathInfo { static void show(String id, Object p) { System.out.println(id + ": " + p); }
static void info(Path p) { show("toString", p); show("Exists", Files.exists(p)); show("RegularFile", Files.isRegularFile(p)); show("Directory", Files.isDirectory(p)); show("Absolute", p.isAbsolute()); show("FileName", p.getFileName()); show("Parent", p.getParent()); show("Root", p.getRoot()); System.out.println("******************"); } public static void main(String[] args) { System.out.println(System.getProperty("os.name")); info(Paths.get("C:", "path", "to", "nowhere", "NoFile.txt")); Path p = Paths.get("PathInfo.java"); info(p); Path ap = p.toAbsolutePath(); info(ap); info(ap.getParent()); try { info(p.toRealPath()); } catch(IOException e) { System.out.println(e); } URI u = p.toUri(); System.out.println("URI: " + u); Path puri = Paths.get(u); System.out.println(Files.exists(puri)); File f = ap.toFile(); } }
|