java7新特性IO操作Files

java1.7的java.nio.file包中定义的类使得对文件的操作变得简单,灵活的多,且看下面的例子:

package Test1;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Date;

/**
 * Files类主要是用来对文件的
 * @author zKF57533
 */
public class TestFiles {
	/**
	 * 非常方便的对文件进行移动操作
	 * 将tt.txt从pathFrom文件夹位置移动到pathTo文件夹下
	 * 

此方法可以和copy这个方法相比较,用法相同,其他增删改查操作请参考api即可

* @throws IOException */ public static void moveFile() { Path pathFrom = Paths.get("e:/logs", "tt.txt"); //其中e:/logs/errorLog/tt.txt的tt.txt文件可以不存在,如果存在会被替换掉 Path pathTo = pathFrom.getParent().resolve("errorLog/dd.txt"); try { //文件的大小bytes System.out.println(Files.size(pathFrom)); //调用文件移动方法 Files.move(pathFrom, pathTo, StandardCopyOption.REPLACE_EXISTING); } catch (IOException e) { System.err.println("移动文件错误" + e.getMessage()); } } /** * 测试文件的属性信息 * 包括文件的修改时间、是否是文件夹、创建时间等 */ @SuppressWarnings("deprecation") public static void fileAttributes(){ Path path = Paths.get("e:/logs"); //1 System.out.println(Files.isDirectory(path, LinkOption.NOFOLLOW_LINKS)); //2 try { //获得文件的基础属性 BasicFileAttributes attributes = Files.readAttributes(path, BasicFileAttributes.class); System.out.println(attributes.isDirectory()); System.out.println(new Date(attributes.lastModifiedTime().toMillis()).toLocaleString()); } catch (IOException e) { e.printStackTrace(); } } /** * 创建文件夹 * 遍历文件夹下的文件 */ public static void createDir(){ Path path = Paths.get("e:/test/tte"); try { //创建文件夹 if(Files.notExists(path)){ Files.createDirectories(path); System.out.println("create dir"); }else{ System.out.println("dir exists"); } //在创建的文件夹下建几个txt文件,例如 //2.txt //ff 文件夹 //java.bat //_java.txt //遍历文件夹下面的文件 DirectoryStream paths = Files.newDirectoryStream(path); for(Path p : paths){ System.out.println(p.getFileName()); } System.out.println(); //创建一个带有过滤器,过滤文件名以java txt bat结尾的文件 DirectoryStream pathsFilter = Files.newDirectoryStream(path, "*.{java,txt,bat}"); for(Path p : pathsFilter){ System.out.println(p.getFileName()); } } catch (IOException e) { e.printStackTrace(); } } }


你可能感兴趣的:(java7新特性IO操作Files)