java文件处理,Java中的文件处理

JavaSE 7中增加了Path接口和Files类,他们使用起来比JDK1.0中的File类方便很多。

Interface Path

Path是目录名的序列,可以包含或者不包含文件名。根据是否以根目录开头,可以分为绝对路径和相对路径。Path用于在文件系统中定位文件对象。

类Paths

Paths.get(String first, String ...more):这个静态方法,接收一个或者多个字符串,并将这些字符串通过操作系统默认的路径分隔符连接起来(Unix系统为"/",Windows为“\”)。返回结果为Path对象。如果结果不是一个合法的路径,抛出InvalidPathException。

Path absolute = Paths.get("/usr", "local");

System.out.println(absolute); // output: /usr/local

Paths.get(URI uri):这个静态方法将给定的URI转化为Path对象。

Path方法

boolean isAbsolute():是否绝对路径。

Path getRoot():返回Path对象的root,如果没有,返回null。

Path getFilename() :返回该路径或者文件的名称,filename是路径中距离根目录最远的元素。

Path getParent():返回父目录。

int getnameCount():返回路径中名称的个数。

int getName(int index): 离根目录最近的名称,index为0,最远的为名称总的个数-1。

Path subpath(int beginIndex, int endIndex):从beginIndex开始,包含beginIndex的名称,以endIndex结束,但不含endIndex位置的名称。

boolean startsWith(Path other):Test if this Path start with the given Path.

boolean startsWith(String other):

boolean endWith(Path other): Test if this Path ends with the given Path.

boolean endWith(String other):

Path resolve(Path other): p.resolve(q),如果q是一个绝对路径,返回other。否则,结果是p+q。

Path resolve(String other):

Path resolveSibling(Path other): 相对于当前路径的父目录,生成一个目录。

Path resolveSibling(String other):

Path relativize(Path other):创建相对路径

Path toFile():返回一个File对象。

实例

Path curPath = Paths.get("/usr","local","etc");

System.out.println(curPath); //output: /usr/local/etc

System.out.println(curPath.toString()); //output: /usr/local/etc

System.out.println(curPath.isAbsolute()); //output:true

System.out.println(curPath.getRoot()); //output: /

System.out.println(curPath.getFileName()); //output: etc

System.out.println(curPath.getNameCount());//output: 3

System.out.println(curPath.getParent()); //output: /usr/local

System.out.println(curPath.getName(0)); //output: usr

System.out.println(curPath.getName(1)); //output: local

System.out.println(curPath.getName(2)); //output: etc

System.out.println(curPath.subpath(1, 2)); //output: local

Path siblingPaths = curPath.resolveSibling("temp");

System.out.println(siblingPaths); //output: /usr/local/temp

System.out.println(curPath.relativize(siblingPaths));//output: ../temp

Files

Files类提供了常见的文件操作,读写文件,创建、移动,复制、删除文件等。

创建路径和文件

Files.createDirectory(path) : 如果中间目录不存在,会报错。

Files.createDirectories(path):如果中间目录不存在,会自动创建。

Files.createFile(path): 如果文件存在,抛出异常。

Files.createTempFile(dir, prefiex, suffix);

Files.createTempDirectory(prefix);

读写文件

static bye[] readAllBytes(Path path):

static List readAllLines(Path path, Charset charset)

static Path write(Path path, byte[] butes, OpenOption... options)

获取文件信息

• static boolean exists(Pathpath)

• static boolean isHidden(Pathpath)

• static boolean isReadable(Pathpath)

• static boolean isWritable(Pathpath)

• static boolean isExecutable(Pathpath)

• static boolean isRegularFile(Pathpath)

• static boolean isDirectory(Pathpath)

• static boolean isSymbolicLink(Pathpath)

• static long size(Path path)

• static FileTime getLastModifiedTime(Path path, LinkOption... options)

目录遍历

静态方法Files.list()方法可读取目录下所有文件,返回一个Stream。该方法不会进入子目录。如果要进入子目录,使用Files.walk()方法。

try(Stream entries = Files.list(directory)){

...

}

类File

String[] list(): 返回目录下文件名,不包含完全路径。

File[] listFiles():返回目录下文件,包含完全路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值