使用java读取文件夹中文件的行数
使用java统计某文件夹下所有文件的行数
经理突然交代一个任务:要求统计某个文件夹下所有文件的行数。在网上查了一个多小时没有解决。后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个小时将代码写出(可见我的java功底还是挺烂的)。虽然有很多有待改进的地方,依然有纪念意义。
本java类的核心是通过BufferedReader类的readLine()方法,间接的统计行数;通过递归遍历文件。
这个类只是写来完成任务的。结果不是很严谨,许多情况并没考虑到:比如判断想读取某一类文件怎么办?这个需要同学们努力了。
想复用的同学只需将main方法中的路径改掉即可。
package Test; import java.io.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map; /**
* Created by 杨华彬 on 2016/12/19.
*/
public class Stastiscs {
/*
main方法
*/
public static void main(String[] args){
//输入路径,请在括号内输入路径。
File f = new File("D:/LanguagePractise/java/Hadoop/src/main/java");
Map map = new HashMap<String,Integer>(); //用来存放统计出来的行数
Plus(f,map);
//输出统计的结果
getResult(map);
} /*
遍历文件夹
*/
public static void Plus(File f ,Map map){ File[] files = f.listFiles();//获取传入路径的所有文件 //遍历这些文件,需求是CVS中的不统计,所以加判断 for (File a : files) {
//如果文件名是CVS的就跳过
if(a.getName().equals("CVS")) {
continue;
}else {
//如果a是文件的话就进入下一级目录,否则就统计行数
if (a.isDirectory()) {
Plus(a,map);
}else{
map = lineNumber(a.getAbsolutePath(),map); //否者调方法统计行数
}
}
} } /*
统计相应文件的行数
*/
public static Map<String,Integer> lineNumber(String f,Map map){
//定义字符流读取文件
FileReader fileReader = null;
try {
fileReader = new FileReader(f);
} catch (IOException e){
e.printStackTrace();
System.out.println("输入的路径不正确");
} BufferedReader bufferedReader= new BufferedReader(fileReader); //从字节流中升级为字符流,方便按行读取。
int index = 0; try {
while (bufferedReader.readLine()!=null){
index++;
}
map.put(f,index); //将结果放到map中 }catch (IOException e){
e.printStackTrace();
System.out.println("这个文件读不到!");
}finally {
if(fileReader != null){
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return map;
}
} /*
将文件的行数存放在一个map中,然后输出行数的和
*/
public static void getResult(Map map){
int sum = 0;
//使用iterator遍历map集合
Iterator<Map.Entry<String,Integer>> entries =
map.entrySet().iterator(); while (entries.hasNext()){
Map.Entry<String,Integer> entry = entries.next();
System.out.println(entry.getKey()+"的行数是:"+entry.getValue());
sum += entry.getValue();
} System.out.println("总行数是:"+sum); }
}
使用java读取文件夹中文件的行数的更多相关文章
- Python按顺序读取文件夹中文件
参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...
- python批量处理文件夹中文件的问题
用os模块读取文件夹中文件 原来的代码: import osfrom scipy.misc import imread filenames=os.listdir(r'./unprocess')for ...
- C# 将文件夹中文件复制到另一个文件夹
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- php获取指定文件夹中文件名称
/** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...
- 删除log文件末尾中指定的行数
/// <summary> /// 删除log文件末尾中指定的行数 /// </summary> /// <param name ...
- Java访问文件夹中文件的递归遍历代码Demo
上代码: import java.io.File; /* * 需求:对指定目录进行所有内容的列出(包含子目录中的内容) * 也可以理解为 深度遍历. */ public class FindAllFi ...
- C#实现对指定文件夹中文件按修改时间排序
string path = "~/Document/Introduction/团队管理制度/"; DirectoryInfo dirinfo = new Di ...
- 【linux】复制文件夹中文件,排除部分文件
如下 cp `ls|grep -v -E '*json|out'|xargs` /home/data/ 用grep -v 表示排除, -E 表示正则 ls|grep -v -E '*json|out ...
- Python之获取文件夹中文件列表以及glob与fnmatch模块的使用
获取文件夹中的文件列表 print(os.listdir("../secondPackage")) # ['__init__.py', 'secondCookBook.py', ' ...
随机推荐
- Scrum Meeting 20161205
本周Sprint Master 史少帅 一. 会议概要 作为一个新的sprint的开端,本次scrum meeting总结了每个人过去以来的工作,并明确了下一步的计划,具体如下: 工作总结: · 陈双 ...
- Chrome 开发工具之Console
前段时间看git的相关,记的笔记也大致写到了博客上,还有些因为运用不熟,或者还有一些疑惑点,暂时也不做过多纠缠,之后在实践中多运用得出结论再整理分享吧. 工欲善其事,必先利其器.要想做好前端的工作,也 ...
- C#基础:飞行棋游戏
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- CsvHelper支持List<T>
/// <summary> /// Csv帮助类 /// </summary> public class CsvHelper { /// <summary> / ...
- skipping the actual organic impact moderation supplied
The most recent running footwear design has gone out. The high cost is actually $150. Expert sports ...
- C# 开源框架
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...
- win10 64位专业版系统中显示32位dcom组件配置的方法
word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...
- 【jQuery】选择器
jQ提供了很多选择器:(注:$("p").action() action为后续动作) 元素选择器 $("p").action() ; //选取所有p标签 id选 ...
- python标准模块(os及sys模块)
一.os模块 用于提供系统级别的操作 os.getcwd() 获取当前工作目录 os.stat('path/filename') 获取文件/目录信息,其中包括文件大小等 os.sep 获得操作系统特定 ...
- flexbox学习
https://philipwalton.github.io/solved-by-flexbox/ http://www.ruanyifeng.com/blog/2015/07/flex-gramma ...