您的位置:首页 > 其它

读取某个文件夹下指定前缀和后缀的文件,并且返回指定文件的功能性Demo

2017-03-02 12:46 477 查看
 
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/59488796冷血之心的博客)
 
实现功能:
读取指定路径的文件夹,读取其中的文件
选择有指定后缀和前缀的文件
比较去除后缀和前缀之后剩余部分的大小
返回指定文件
比如说有这样一个文件夹:



执行代码后结果如下:



 
 
代码如下:package com.ywq;

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Client {

public static void main(String[] args) {
try {
String targetFile = getFile("D:/ywq","文本",".txt");
System.out.println(targetFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getFile(String filepath, String prefix, String suffix) throws FileNotFoundException, IOException {
filepath = checkFilePathEnd(filepath);
File file = new File(filepath);
Integer maxNum = null;
if (!file.isDirectory()) {
return null;
}
List<Integer> numList = new ArrayList<Integer>();
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filepath + filelist[i]);
Integer num = getNum(readfile, prefix, suffix);
if (num!=null) {
numList.add(num);
}
}
Collections.sort(numList);
if (!numList.isEmpty()) {
maxNum = numList.get(numList.size()-1);
}else{
return null;
}
return prefix+maxNum+suffix;
}

public static String checkFilePathEnd(String filepath){
if(!filepath.endsWith("/"))
filepath =filepath + "/";
return filepath;

}

public static Integer getNum(File readfile, String prefix, String suffix ){
Integer number = null;
if (!readfile.isDirectory() && readfile.getName().endsWith(suffix)
&& readfile.getName().startsWith(prefix)) {
String num = readfile.getName().substring(prefix.length(),
readfile.getName().length()-suffix.length());
try {
number = Integer.parseInt(num);
} catch (Exception e) {
return number;
}

}
return number;
}
}

代码没有加注释,感觉函数命名已经很清楚了。大家加油~


 
 
 
 如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以进群366533258一起交流学习哦~
 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐