java文件夹里jre7_JDK 7的文件和目录访问

作者:chszs,转载需注明。

作者博客主页:http://blog.csdn.net/chszs

JDK 7进行文件树复制和遍历非常简单。与JDK 6或更早的版本相比,你会发现使用JDK 7的NIO包很简单,所需的代码非常少。

本文用两个例子展示了JDK 7的文件I/O机制,java.nio.file包提供了对文件I/O的支持,可以访问默认的文件系统。这个包非常直观,易于使用。

例子所需的工具:

1. JDK 7

2. Eclipse 4.2

在例子中,我们使用java.nio.file.Files所支持的文件操作。这个类包含了许多静态方法,比如对文件和目录的复制、移动、删除、遍历文件树等。

java.nio.file.Path是java.nio.file包的主要的入口点之一。Path类表示文件系统的路径。

例1:文件复制操作

从源文件复制到目标文件,使用Files.copy方法。我们还需要提供不同的选项——使用java.nio.file.CopyOption来指定怎样复制文件。

CopyOpDemo.java代码如下:

package test;

import java.io.IOException;

import java.nio.file.CopyOption;

import java.nio.file.Files;

import java.nio.file.Path;

import java.nio.file.Paths;

import java.nio.file.StandardCopyOption;

public class CopyOpDemo {

public static void main(String[] args){

// 待复制的源文件

Path srcFile = Paths.get("D:/tmp/test1.htm");

// 复制后的目标文件

Path targetFile = Paths.get("D:/destFile.txt");

// 复制选项定义

CopyOption[] options = new CopyOption[]{

StandardCopyOption.REPLACE_EXISTING

};

// 复制文件

try {

Files.copy(srcFile, targetFile, options);

System.out.println("复制成功!");

} catch (IOException e) {

e.printStackTrace();

}

}

}

作者:chszs,转载需注明。作者博客主页:http://blog.csdn.net/chszs

例2:遍历文件树

要遍历文件树,使用Files.walkFileTree方法。此方法需要指定根路径或起始路径。以及要重写SimpleFileVisitor的实现类的两个方法:preVisitDirectory和visitFile。两个方法定义了在访问目录和文件期间想做的事。这使得我们要打印目录和文件名就非常简单了。

RecursiveFileListDemo.java代码如下:

package test;

import java.nio.file.FileVisitResult;

import java.nio.file.Files;

import java.io.IOException;

import java.nio.file.Path;

import java.nio.file.Paths;

import java.nio.file.SimpleFileVisitor;

import java.nio.file.attribute.BasicFileAttributes;

public class RecursiveFileListDemo {

public static void main(String[] args) throws IOException{

Path startPath = Paths.get("D:/tmp/s5-blank");

Files.walkFileTree(startPath, new SimpleFileVisitor(){

@Override

public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs){

System.out.println(">>>>Dir : " + dir);

return FileVisitResult.CONTINUE;

}

@Override

public FileVisitResult visitFile(Path file, BasicFileAttributes attrs){

System.out.println("File : " + file);

return FileVisitResult.CONTINUE;

}

});

}

}

文件目录如下图所示:

1352470655_2838.jpg

那么程序执行后,控制台输出如下:

>>>>Dir : D:\tmp\s5-blank

File : D:\tmp\s5-blank\.DS_Store

File : D:\tmp\s5-blank\s5-blank.html

>>>>Dir : D:\tmp\s5-blank\ui

File : D:\tmp\s5-blank\ui\.DS_Store

>>>>Dir : D:\tmp\s5-blank\ui\default

File : D:\tmp\s5-blank\ui\default\.DS_Store

File : D:\tmp\s5-blank\ui\default\blank.gif

File : D:\tmp\s5-blank\ui\default\bodybg.gif

File : D:\tmp\s5-blank\ui\default\framing.css

File : D:\tmp\s5-blank\ui\default\iepngfix.htc

File : D:\tmp\s5-blank\ui\default\opera.css

File : D:\tmp\s5-blank\ui\default\outline.css

File : D:\tmp\s5-blank\ui\default\pretty.css

File : D:\tmp\s5-blank\ui\default\print.css

File : D:\tmp\s5-blank\ui\default\s5-core.css

File : D:\tmp\s5-blank\ui\default\slides.css

File : D:\tmp\s5-blank\ui\default\slides.js

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值