java

位置:IT落伍者 >> java >> 浏览文章

在Java 7里如何对文件进行操作


发布日期:2020年07月31日
 
在Java 7里如何对文件进行操作
下面的代码片段是由经过验证的程序修改而来观察这些代码片段你会发现跟以前的版本相比在Java文件相关的操作变得简单的多了通过使用新的Files类里提供的各种方法你可以只用一行代码就能完成下列的文件操作

?创建文件

?删除文件

?复制文件

?文件移动/改名

这篇文件是以你对Java里提供的新的Path类很熟悉为前提如果你不熟悉这个类这里就简单说一句Path是文件系统里对位置的一个逻辑概念例如c:\ 和/foobartxt都是Path

创建和删除文件

下面的代码片段向你展示的是用 FilescreateFile (Path target) 方法创建文件的基本用法

Path target = Pathsget (D:\\Backup\\MyStufftxtPath file = FilescreateFile (target)

很多时候出于安全的原因你可能希望在创建的文件上设置一下属性例如是否可读/可写/写执行这些属性依赖于文件系统的种类你需要使用跟文件系统相应的权限辅助类来完成这种操作例如PosixFilePermission和PosixFilePermissions为POSIX文件系统设计的下面的是在POSIX文件系统上的文件设置读写权限的用法

Path target = Pathsget (D:\\Backup\\MyStufftxt

Set<PosixFilePermission> perms =

PosixFilePermissionsfromString (rwrwrw

FileAttribute<Set<PosixFilePermission》 attr =

PosixFilePermissionsasFileAttribute (perms)

FilescreateFile (target attr)

这个javaniofileattribute包里提供了很多关于FilePermission的类

警告当创建一个带有权限属性的文件时请注意包含这个文件的文件夹是否有权限的强制约束例如你会发现由于这些限制尽管你给创建的文件指定了rwrwrw权限实际创建的结果却是rwr–r–

删除文件更简单使用Filesdelete (Path)这个方法

Path target = Pathsget (D:\\Backup\\MyStufftxt

Filesdelete (target)

拷贝和移动文件

下面的代码向你展示的是使用py (Path source Path target)方法做文件拷贝的基本用法

Path source = Pathsget (C:\\My Documents\\Stufftxt

Path target = Pathsget (D:\\Backup\\MyStufftxt

py (source target)

经常的在拷贝文件的过程中你可能希望指定一些操作设置在Java你可以通过使用StandardCopyOption enum来设置这些属性下面看一个例子

import static javaniofileStandardCopyOption*;

Path source = Pathsget (C:\\My Documents\\Stufftxt

Path target = Pathsget (D:\\Backup\\MyStufftxt

py (source target REPLACE_EXISTING)

拷贝操作时可以使用的属性还包括COPY_ATTRIBUTES (保留文件属性) 和ATOMIC_MOVE (确保移动事务操作的成功否则进行回滚)

移动文件的操作跟拷贝很相似使用Filesmove (Path source Path target)方法

同样你也可以指定移动操作的属性使用Filesmove (Path source Path target CopyOptions…) 方法里的参数来设置

import static javaniofileStandardCopyOption*;

Path source = Pathsget (C:\\My Documents\\Stufftxt

Path target = Pathsget (D:\\Backup\\MyStufftxt

Filesmove (source target REPLACE_EXISTING

COPY_ATTRIBUTES)

可以看出新的用于文件操作的NIO API 非常便于使用

上一篇:JavaApplet编程技巧

下一篇:Java Web应用开发中的一些概念