作者:chszs,转载需注明。
作者博客主页:http://blog.csdn.net/chszsJDK 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<Path>(){
@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;
}
});
}
}
文件目录如下图所示:
那么程序执行后,控制台输出如下:
>>>>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
分享到:
相关推荐
1. **下载JDK 7**:访问Oracle官网的历史版本下载页面,找到适合你系统架构(32位或64位)的JDK 7安装包。文件名为`jdk-7uXX-windows-i586.exe`(对于32位系统)或`jdk-7uXX-windows-x64.exe`(对于64位系统),其中...
新的java.nio.file包提供了对文件系统的全面访问,包括文件、目录、符号链接和属性。API的设计更加面向对象,使得文件操作更加简洁和强大。 ### 配置环境变量 要使用这个免安装的JDK7,你需要在系统环境变量中...
对于开发者而言,深入掌握JDK配置文件的相关知识,能够显著提升开发效率和系统性能。 ### JDK配置文件概述 JDK配置文件主要包括以下几种: 1. **JAVA_HOME环境变量**:这是设置JDK安装位置的关键环境变量。正确...
5. **文件系统API增强**:NIO.2引入了新的`java.nio.file`包,提供了对文件系统更全面的访问和控制,支持文件的遍历、属性查询和异步I/O操作。 6. **Fork/Join框架**:这是Java并发处理的一个重要改进,它允许将大...
标题 "JDK7+Tomcat7 Linux64安装包" 提供了我们即将讨论的核心内容:在64位Linux系统上安装JDK7和Tomcat7。这两个组件都是Java应用程序开发和部署的基础。JDK(Java Development Kit)是用于编写、测试和运行Java...
JDK 7(Java Development Kit 7)是Oracle公司发布的Java开发工具包的一个版本,它包含了开发Java应用程序所需的工具、文档以及库文件等资源。JDK 7是在JDK 6的基础上进行了一系列改进与增强,引入了许多新功能和...
1. 下载:访问Oracle官网,找到JDK 1.7的64位版本下载链接,下载文件名为“jdk-7u80-windows-x64.exe”的安装程序。 2. 运行安装程序:双击下载的exe文件,启动安装向导。 3. 接受许可协议:阅读并接受Oracle的...
JDK 的安装是 Java 开发环境的基础,安装完成后,开发者可以使用 Java 语言编写程序,并使用 JDK 提供的工具和库进行开发和测试。JDK 的安装还可以确保 Java 应用程序的正确运行。 JDK 的组成部分 JDK 由以下几个...
更好的安全性:JDK 17.0.7 包括许多安全改进,例如增强的访问控制、新的安全提示和改进的安全审计等,有助于提高应用程序的安全性。 JDK 17的主要特点 支持 Java 应用程序的跨平台性:JDK 17.0.7 支持 Windows、Linux...
5. **NIO.2**:引入了新的文件系统API,提供了异步文件操作,路径操作和文件属性访问等功能。 6. **改进的类型推断(Improved Type Inference for Generic Instance Creation)**:使得在某些情况下,编译器可以更...
JDK 7,也称为Java SE 7 (Java Standard Edition 7),是Java语言的一个重要版本,它在2011年发布,带来了许多新特性、改进和优化,对于开发者来说是一个里程碑式的更新。在Windows平台上,JDK 7提供了32位和64位两个...
6. **文件系统API**:JDK7引入了新的`java.nio.file`包,提供了一套全面的API来操作文件系统,包括路径操作、文件和目录的创建、访问权限等。 在这个解压版中,我们可以看到一些关键的目录结构,如`sunw`、`javax`...
在本案例中,JDK7u25 版本被提及,它适用于64位和32位的操作系统。64位系统的用户可以选择对应的64位版本,而32位系统则应安装32位的JDK。下载JDK可访问Oracle官方网站提供的链接,确保在下载前同意许可协议。 安装...
JDK7的使用涵盖从编写Java代码、编译成.class文件、打包成JAR,到部署和运行。对于生产环境,稳定性、安全性和性能都是重要的考量因素。JDK7在这些方面都做了显著提升,使得开发者可以更加高效地构建高质量的Java...
通过以上步骤,你将成功安装并配置好JDK 7和Eclipse,可以开始你的Java开发之旅了。记得定期更新JDK以获取最新的安全修复和功能改进,但对于一些特定项目,使用旧版本的JDK可能是必要的,比如当项目依赖于不兼容新...
在压缩包“IBM-jdk7-win64”中,包含的主要文件可能是安装程序或者解压后的JDK目录结构。一般来说,一个完整的JDK安装会包括bin目录,其中存放了Java编译器(javac.exe)、解释器(java.exe)和其他开发工具;lib...
标题“jdk7linux64位 tar.gz.zip”表明这是一个针对Linux 64位系统的Java Development Kit(JDK)版本7的压缩文件。该文件采用了两种常见的压缩格式:tar和zip。通常,tar用于将多个文件打包成一个单一的归档文件,...
4. **文件系统API**:NIO.2提供了对文件系统更全面、更面向对象的访问,例如Path类和Files类,使得文件操作更加便捷。 5. **多线程并发**:引入了Fork/Join框架,这是一个并行计算模型,适用于分解大型任务并并行...
本资源包集合包括了JDK6、JDK7和JDK8三个重要版本,分别代表了Java发展历程中的关键节点。 JDK6,也称为Java SE 6(标准版6),于2006年发布,是Java平台的一个重要里程碑。此版本引入了许多新特性,如改进的Swing...