使用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读取文件夹中文件的行数的更多相关文章

  1. Python按顺序读取文件夹中文件

    参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...

  2. python批量处理文件夹中文件的问题

    用os模块读取文件夹中文件 原来的代码: import osfrom scipy.misc import imread filenames=os.listdir(r'./unprocess')for ...

  3. C# 将文件夹中文件复制到另一个文件夹

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  4. php获取指定文件夹中文件名称

    /** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...

  5. 删除log文件末尾中指定的行数

    /// <summary>        /// 删除log文件末尾中指定的行数        /// </summary>        /// <param name ...

  6. Java访问文件夹中文件的递归遍历代码Demo

    上代码: import java.io.File; /* * 需求:对指定目录进行所有内容的列出(包含子目录中的内容) * 也可以理解为 深度遍历. */ public class FindAllFi ...

  7. C#实现对指定文件夹中文件按修改时间排序

    string path = "~/Document/Introduction/团队管理制度/";            DirectoryInfo dirinfo = new Di ...

  8. 【linux】复制文件夹中文件,排除部分文件

    如下 cp `ls|grep -v -E '*json|out'|xargs` /home/data/ 用grep -v  表示排除, -E 表示正则 ls|grep -v -E '*json|out ...

  9. Python之获取文件夹中文件列表以及glob与fnmatch模块的使用

    获取文件夹中的文件列表 print(os.listdir("../secondPackage")) # ['__init__.py', 'secondCookBook.py', ' ...

随机推荐

  1. Scrum Meeting 20161205

    本周Sprint Master 史少帅 一. 会议概要 作为一个新的sprint的开端,本次scrum meeting总结了每个人过去以来的工作,并明确了下一步的计划,具体如下: 工作总结: · 陈双 ...

  2. Chrome 开发工具之Console

    前段时间看git的相关,记的笔记也大致写到了博客上,还有些因为运用不熟,或者还有一些疑惑点,暂时也不做过多纠缠,之后在实践中多运用得出结论再整理分享吧. 工欲善其事,必先利其器.要想做好前端的工作,也 ...

  3. C#基础:飞行棋游戏

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. CsvHelper支持List<T>

      /// <summary> /// Csv帮助类 /// </summary> public class CsvHelper { /// <summary> / ...

  5. skipping the actual organic impact moderation supplied

    The most recent running footwear design has gone out. The high cost is actually $150. Expert sports ...

  6. C# 开源框架

    一.AOP框架        Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...

  7. win10 64位专业版系统中显示32位dcom组件配置的方法

    word.excel是32位的组件,当用户64位系统在运行窗口中输入dcomcnfg命令时,在打开的组件服务管理窗口,是找不到Microsoft Excel.word程序的.另外,Windows 环境 ...

  8. 【jQuery】选择器

    jQ提供了很多选择器:(注:$("p").action() action为后续动作) 元素选择器 $("p").action() ; //选取所有p标签 id选 ...

  9. python标准模块(os及sys模块)

    一.os模块 用于提供系统级别的操作 os.getcwd() 获取当前工作目录 os.stat('path/filename') 获取文件/目录信息,其中包括文件大小等 os.sep 获得操作系统特定 ...

  10. flexbox学习

    https://philipwalton.github.io/solved-by-flexbox/ http://www.ruanyifeng.com/blog/2015/07/flex-gramma ...