`

java 对文件夹下指定后缀名的读写操作(运用递归的案例)

    博客分类:
  • J2EE
 
阅读更多
package test;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;

/***
* 文件的读写操作
*
* @ClassName: FileReadOrWrite
* @Description:
* @author:JH020
* @date 2014年2月21日 上午9:51:41
* @version V1.0
*/
public class FileReadOrWrite {

/**
* 文件的主程序入口
*
* @param args
*/
public static void main(String[] args) {
// String readFilePath = "D://CEDD//HWWTest";
String readFilePath = "Z://";
File writerFile = new File("D://CEDD//lcsd.txt");
if (!writerFile.exists()) {
try {
writerFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
FileWriter fw;
try {
fw = new FileWriter(writerFile);
FileReadOrWrite.listFile(readFilePath, fw);
} catch (IOException e) {
e.printStackTrace();
}

}

/**
* 调用两个读写的方法
*
* @param name
* @param fw
*/
public static void listFile(String name, FileWriter fw) {
try {
FileReadOrWrite.list_html(name, fw);
FileReadOrWrite.list_htm(name, fw);
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 列出读文件夹目录下所有以 .html 结尾的文件
*
* @param name
* @param fw
*/
public static void list_html(String name, FileWriter fw) {
try {
File f = new File(name);
if (!f.exists()) {
System.out.println("文件不存在哦");
return;
}

if (f.isDirectory()) {
File[] list = f.listFiles(getFileExtensionFilter(".html"));
for (int i = 0; i < list.length; i++) {
String paths = "<a href=\"" + list[i].toString() + "\">"
+ list[i].toString() + "</a><br>";
String writePaths1 = paths.replace("Z:",
"http://localhost/lcsd");
String writePaths2 = writePaths1.replace("\\", "/");
fw.write(writePaths2);
System.out.println(writePaths2);
BufferedWriter bfw = new BufferedWriter(fw);
bfw.newLine();// 换行
}
list = f.listFiles(getNotDirFileFilter());
for (int i = 0; i < list.length; i++) {
if (list[i].isDirectory())
list_html(list[i].toString(), fw);
}
}
} catch (Exception e) {
System.out.println("IO error!/r/n" + e.toString());
}

}

/**
* 列出读文件夹目录下所有以 .htm 结尾的文件
*
* @param name
* @param fw
*/
public static void list_htm(String name, FileWriter fw) {
try {
File f = new File(name);
if (!f.exists()) {
System.out.println("文件不存在哦");
return;
}

if (f.isDirectory()) {
File[] list2 = f.listFiles(getFileExtensionFilter(".htm"));
for (int i = 0; i < list2.length; i++) {
String paths = "<a href=\"" + list2[i].toString() + "\">"
+ list2[i].toString() + "</a><br>";
String writePaths1 = paths.replace("Z:",
"http://localhost/lcsd");
String writePaths2 = writePaths1.replace("\\", "/");
fw.write(writePaths2);
System.out.println(writePaths2);
BufferedWriter bfw = new BufferedWriter(fw);
bfw.newLine();// 换行
}
list2 = f.listFiles(getNotDirFileFilter());
for (int i = 0; i < list2.length; i++)
if (list2[i].isDirectory())
list_htm(list2[i].toString(), fw);
}
} catch (Exception e) {
System.out.println("IO error!/r/n" + e.toString());
}
}

/***
* 指定扩展名过滤
*
* @param extension
* @return
*/
public static FilenameFilter getFileExtensionFilter(String extension) {
final String _extension = extension;
return new FilenameFilter() {
public boolean accept(File file, String name) {
boolean ret = name.endsWith(_extension);
return ret;
}
};
}

/**
* 如果是文件夹( 文件还是目录过滤)
*
* @return
*/
public static FileFilter getNotDirFileFilter() {

return new FileFilter() {
public boolean accept(File file) {
return file.isDirectory();// 关键判断点
}
};

}

}
分享到:
评论

相关推荐

    java删除指定文件夹下文件

    在JDK 7及以上版本中,Java提供了一种更加高效且灵活的方式来删除文件,包括递归删除整个文件夹及其子文件,这主要通过`java.nio.file`包中的`Files`类和`SimpleFileVisitor`类来实现。下面我们将详细探讨如何实现这...

    C#遍历文件夹下文件修改后缀名

    下面是一个简单的示例,展示如何遍历指定文件夹下的所有文件并修改它们的后缀名: ```csharp using System; using System.IO; class Program { static void Main(string[] args) { string sourceDirectory = @...

    java移动文件夹下所有文件

    在Java编程语言中,移动文件夹下所有文件是一项常见的任务,尤其在处理文件系统操作时。这个场景描述了一个程序能够遍历指定文件夹中的所有文件,并将它们移动到另一个目标文件夹,同时保持原有的文件结构。这样的...

    获取某文件夹下所有文件名、文件夹名、后缀名

    在IT领域,获取一个文件夹下所有文件名、文件夹名以及后缀名是一项常见的任务,这在数据处理、文件管理、自动化脚本编写等方面都非常重要。本文将详细讲解如何实现这一功能,并提供一个名为"getfilename.exe"的实用...

    java递归指定目录文件后缀名个数

    java递归指定目录文件后缀名个数

    C# 用递归的方式查找指定文件夹下的所有子目录

    通过以上讨论,我们了解到如何使用C#的递归方法查找文件夹下的所有子目录,并了解了相关的关键知识点,包括递归概念、文件操作、WinForm应用的构建以及项目配置。在实际开发中,可以根据具体需求进行调整和优化。

    递归删除指定文件夹下的指定文件夹及文件

    递归删除指定文件夹下的指定文件夹及文件,如删除文件夹中的所有.svn的文件夹及文件

    JAVA 对文件夹操作

    ### JAVA对文件夹操作知识点详解 #### 一、概述 在Java编程中,对文件的操作是一项非常基础且重要的技能。无论是简单的文件读写还是复杂的文件系统管理,掌握这些技巧对于开发高质量的应用程序至关重要。本篇内容...

    java删除某个文件夹

    java递归删除整个文件夹,可以文件夹中所有的文件和子文件夹

    Java代码 可以压缩文件夹到指定目录和指定名称,将文件或者文件夹中的文件转成base64格式

    在Java编程语言中,压缩文件夹到指定目录和指定名称是一项常见的任务,这通常涉及到对文件系统的操作和使用压缩库。Java提供了多种方法来实现这一功能,比如使用内置的`java.util.zip`包或者第三方库如Apache ...

    递归删除指定类型的文件夹,递归删除指定类型的文件

    如果不是,函数会遍历该目录下的所有子目录,对每个子目录调用自身,实现递归。为了安全起见,通常会在删除前确认用户授权,避免误删重要数据。 2. **递归删除指定类型的文件**:类似地,我们创建另一个函数,接收...

    JAVA程序递归方式搜索Windows文件夹源代码

    在Java编程中,递归是一种强大的技术,常用于解决复杂问题,例如遍历或搜索文件系统中的文件夹。本文将详细解析如何使用Java编写一个递归程序来搜索Windows文件夹,以及涉及到的相关知识点。 首先,我们需要理解...

    C语言遍历文件下指定后缀文件(包括子文件夹)

    在C语言中,遍历一个目录下...总结,C语言遍历文件下指定后缀文件(包括子文件夹)主要涉及文件系统操作函数的使用、文件后缀的判断以及递归调用的实现。通过这些基础知识,我们可以灵活地处理各种文件系统相关的任务。

    java递归删除文件和文件夹.pdf

    Java 递归删除文件和文件夹是 Java 编程中一个常见的操作。该操作需要使用 Java 的 File 类来实现,通过递归调用来删除文件和文件夹。 File 类 在 Java 中,File 类是用于表示文件和文件夹的类。该类提供了许多...

    java 递归读取文件夹 读取文件 写文件

    java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取文件 写文件java 递归读取文件夹 读取...

    使用c语言递归删除指定文件夹下所有的文件(包含文件以及文件夹)

    本代码使用c语言,可执行递归删除指定文件夹下所有的文件(包含文件以及文件夹)的操作,注释详细,易于使用或修改

    C#遍历文件夹获取指定后缀名文件

    总之,C#遍历文件夹获取指定后缀名文件的技巧,涉及到.NET框架的文件操作类、目录遍历、递归处理、异常处理、字符串操作等多个方面,是开发Windows桌面应用程序和进行文件系统管理的基石。通过上述知识点的详细说明...

    Java 遍历文件夹内文件

    在Java编程中,遍历文件夹内的文件是一项常见的任务,特别是在处理文件系统操作时。这个话题涉及到了Java的I/O(输入/输出)流、文件系统API和递归概念。以下是对这一主题的详细讲解: 首先,Java提供了一个强大的`...

    通过递归FTP差异下载文件夹(目录)Java

    通过FTP协议下载一个文件夹(目录),可以实现递归方式下载,将本地文件与FTP服务器文件对比,增量下载。

    运用java压缩文件夹并备份至目标文件夹

    本文将详细讲解如何运用Java来实现文件夹的压缩,并将其备份到目标文件夹。首先,我们需要了解Java中用于处理压缩文件的核心库——`java.util.zip`。 在Java中,我们可以使用`ZipOutputStream`类来创建ZIP压缩文件...

Global site tag (gtag.js) - Google Analytics