package com.syp.test;
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
乱码处理 http://rowdarte.iteye.com/blog/593074
/**
* 读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历
*
* @author zdz8207
*
*/
public class FileViewer {
public static void main(String[] args) {
// List arrayList = FileViewer.getListFiles("d:/com","html",true);
// 读取d:/com下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件)
// List arrayList = FileViewer.getListFiles("d:/com","java",true);
// 经试验,后缀不能不填写,否则编译不通过,提示“FileViewer.java:17: 非法的表达式开始”。
// 另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件
List arrayList = FileViewer.getListFiles(
"d:\\test", "txt", true);
if (arrayList.isEmpty()) {
System.out.println("没有符号要求的文件");
} else {
String message = "";
message += "符号要求的文件数:" + arrayList.size() + "\r\n";
System.out.println(message);
for (Iterator i = arrayList.iterator(); i.hasNext();) {
String temp = (String) i.next();
int bg = temp.lastIndexOf(".");
String ret = temp.substring(0,bg+1)+"dd";
createddFile(ret);
System.out.println(temp+"\t"+ret);
message += temp + "\r\n";
}
// 将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常
// java.io.FileNotFoundException: d:\ajax\menu.txt (系统找不到指定的路径。)
// 如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。
appendMethod("d:/menu.txt", message);
}
}
//记录了符合条件的文件的list
public static List<String> fileList = new ArrayList<String>();
/**
*
* @param path
* 文件路径
* @param suffix
* 后缀名
* @param isdepth
* 是否遍历子目录
* @return
*/
public static List getListFiles(String path, String suffix, boolean isdepth) {
File file = new File(path);
return FileViewer.listFile(file, suffix, isdepth);
}
public static List listFile(File f, String suffix, boolean isdepth) {
// 是目录,同时需要遍历子目录
if (f.isDirectory() && isdepth == true) {
File[] t = f.listFiles();
for (int i = 0; i < t.length; i++) {
listFile(t[i], suffix, isdepth);
}
} else {
String filePath = f.getAbsolutePath();
System.out.println("suffix = " + suffix);
if (suffix == "" || suffix == null) {
// 后缀名为null则为所有文件
System.out.println("----------------");
fileList.add(filePath);
} else {
int begIndex = filePath.lastIndexOf(".");// 最后一个.(即后缀名前面的.)的索引
String tempsuffix = "";
if (begIndex != -1)// 防止是文件但却没有后缀名结束的文件
{
tempsuffix = filePath.substring(begIndex + 1, filePath
.length());
}
if (tempsuffix.equals(suffix)) {
fileList.add(filePath);
}
System.out.println("|||||||||||||||||||");
}
}
return fileList;
}
/**
* 方法追加文件:使用FileWriter
*
* @param fileName
* @param content
*/
public static void appendMethod(String fileName, String content) {
try {
// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "\r\n");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 方法追加文件:使用FileWriter
*
* @param fileName
* @param content
*/
public static void createddFile(String fileName) {
try {
// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName);
//writer.write("aaaaaaaaa" + "\r\n");
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//获取当前绝对路径
System.out.println(GetCurrentPaht.class.getResource("")
.getPath().substring(1));
File file = new File(File.separator);
String[] str = file.list();
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
System.out.println("File Total: "+str.length);
public class BufferedStream01 {
public static void main(String[] args) {
BufferedWriter bw = null;
BufferedReader br = null;
try {
bw = new BufferedWriter(new FileWriter("D:/test/ewr/123/ee.csv"));
br = new BufferedReader(new FileReader(
"D:/test/ewr/123/《吕氏春秋》全集.csv"));
String s = null;
bw.write("列明事实应用" + "\r\n");
while ((s = br.readLine()) != null) {
bw.write(s + "\r\n");
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
br.close();
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
cd ../
set CONVERT_HOME="%cd%/"
set JAVA_HOME="%CONVERT_HOME%/jdk"
set PATH="%CONVERT_HOME%/jdk/bin"
set CPATH="."
set CPATH=%CPATH%;"%CONVERT_HOME%/jdk/lib/dt.jar"
set CPATH=%CPATH%;"%CONVERT_HOME%/jdk/lib/tools.jar"
set CPATH=%CPATH%;"%CONVERT_HOME%"/lib/commons-logging.jar
set CPATH=%CPATH%;"%CONVERT_HOME%"/lib/log4j-1.2.14.jar
set CPATH=%CPATH%;"%CONVERT_HOME%"/lib/convert.jar
java -server -Xms60m -DCONVERT_HOME="%CONVERT_HOME%" -cp %CPATH% com.convert.main.Main
for(String lef : leaf)
{
for(String sr : sourceTree)
{
if(sr.equals(lef))
{
cicle.clear();
System.out.println(sr);
cicle.add(lef.split("-")[0]);
dep(lef.split("-")[0],sourceTree,cicle);
}
}
}
private static void dep(String lef, List<String> sourceTree,List<String> cicle) {
for(int i=0;i<sourceTree.size();i++)
{
String row = sourceTree.get(i);
String next = "";
if(i+1<sourceTree.size())
{
next = sourceTree.get(i+1);
}
if(i==sourceTree.size())
{
break;
}
if(lef.equals(row.split("-")[0]))
{
if(cicle.contains(row.split("-")[0]))
{
System.out.println(sourceTree.get(i).split("-")[0]+"闭环...");
}
cicle.add(next.split("-")[0]);
}
}
分享到:
相关推荐
【标题】"JAVA文件学习,文件搜索器"指的是一个基于Java编程语言开发的实用工具,它的主要功能是帮助用户在计算机文件系统中快速查找特定的文件或文件夹。这个工具可能利用了Java的I/O流、文件操作以及目录遍历等...
Java编写的文件搜索工具是一种高效实用的软件,它允许用户根据特定条件快速定位到目标文件。这个工具的主要功能包括在指定的目录下搜索文件,基于文件内容、更改时间、文件类型以及是否包含子目录等多个维度进行筛选...
### Java代码递归的折半查找算法 #### 算法概述 递归版本的折半查找算法是一种高效的搜索技术,适用于已排序的数组。它的工作原理是将问题分解为更小的问题,直到找到目标值或确定目标值不存在于数组中为止。这种...
综上所述,文件检索源码涉及到的技能点包括文件系统操作、文本处理、搜索算法、多线程/多进程、用户界面设计、异常处理以及跨平台编程。理解并掌握这些知识点,不仅可以帮助我们更好地利用提供的源码,还能为自定义...
Java文件扫描(递归)是通过递归方法遍历文件系统中的目录和子目录,用于检索文件或执行某些操作。在给定的代码示例中,展示了两个简单的Java程序,它们分别实现了文件的扫描和文件扫描的同时读取特定类型文件的内容...
在Java编程语言中,开发一个...总的来说,构建一个Java文件搜索器涉及对`java.io.File`类的理解,以及如何利用`FileFilter`进行文件筛选。通过封装和优化,我们可以创建一个强大且灵活的工具,满足各种文件搜索需求。
在Java编程中,递归是一种...总之,这个Java递归函数提供了遍历目录结构并收集所有文件路径的能力,适用于处理如日志文件检索等任务。通过理解递归的工作原理和这个特定实现的细节,你可以灵活地应用于其他类似问题。
总的来说,"FileManager_Java命令行文件管理器_"项目提供了一种用Java实现的命令行工具,它具有基本的文件和目录管理功能,如创建新文件夹,并且可能包含对JSON文件的支持,用于处理如成员搜索这样的特定任务。
6. **文件遍历**:`FileVisitor`接口允许我们遍历文件系统的目录结构,这在需要递归操作或搜索特定文件时非常有用。 7. **权限和访问控制**:在文件系统中,权限管理是一个重要的话题。JAVA提供了一些方法来检查和...
在Java编程领域,一个文件管理系统(File Manager)是用于组织、检索和操作计算机上存储的文件的应用程序。这个"Java文件管理系统.zip"可能包含了源代码、文档和其他资源,用于构建一个这样的系统。以下是对该系统...
二分检索,也称为折半查找,是一种在有序数组中查找特定元素的高效算法。它的基本思想是将数组分成两半,每次比较中间元素与目标值,根据比较结果决定是在左半部分还是右半部分继续查找,直到找到目标元素或者搜索...
在内存数据库中,这种机制能够让数据按照特定的顺序存储,当需要检索数据时,可以直接定位到相应的位置,从而减少检索的时间复杂度。 其次,文章结合自定义数据处理逻辑结构设计方法,对Java内存数据库检索过程中的...
然而,快速检索文件和遍历文件夹并不局限于特定的编程语言,而是通用的概念,可以在各种语言中实现,包括Python、Java、C#等。 1. **遍历文件夹**:在操作系统中,遍历文件夹通常通过递归的方式完成,即首先访问...
它负责存储、检索、命名和保护文件。在Windows系统中,最常见的文件系统类型是NTFS,而在Linux或MacOS中,则可能是EXT4或APFS。 扫描磁盘所有文件的基本步骤通常包括以下几点: 1. **获取根目录**:首先,我们需要...
当用户请求特定页的数据时,`FileMap`会根据这些参数来检索并返回相应的文件列表。 其次,`FileUtil.java`可能是工具类,提供了对文件系统操作的静态方法。这个类可能包含诸如遍历目录、获取文件属性、判断文件或...
本项目专注于使用Java语言实现两种高效的空间检索算法:网格法和KDTree。下面将详细阐述这两种方法及其在Java中的实现。 首先,网格法,也称为四叉树或QUADtree,是一种将空间数据结构划分为小的、互不重叠的矩形...