使用java读取文件夹中文件的行数

时间:2022-10-28 20:03:26

使用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&num; 将文件夹中文件复制到另一个文件夹

    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&num;实现对指定文件夹中文件按修改时间排序

    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. css3属性,会动的生日蛋糕

    <!DOCTYPE html><html><head lang="en">    <meta charset="UTF-8&qu ...

  2. MyBatis 元素类型为 &quot&semi;configuration&quot&semi; 的内容必须匹配 &quot&semi;&period;&period;&period;&period;&period;

    修改MyBatis配置文件时,添加typeAliases节点,报了一个BuilderException: org.apache.ibatis.exceptions.PersistenceExcepti ...

  3. NOIP2015-stone(二分答案)

    这道题在考试时二分答案写炸了,结果得了20分.....同学有用贪心写的(对,贪心!!)都得了30,我感到了深深的恶意.这段时间在忙转语言,现在重新整理一下NOIP的题. 题目来源:vijos 题目如下 ...

  4. Quartz Scheduler&lpar;2&period;2&period;1&rpar; - Integration with Spring

    1. maven 依赖: <properties> <spring.version>3.2.3.RELEASE</spring.version> <quart ...

  5. Yii框架AR对象数据转化为数组

    demo函数作用:将AR对象数据转化为数组 局限:仅用于findAll的多维数组,find一维数组可以先转化为多维数组的一个元素在使用 function actionIndex() { $data = ...

  6. Lua 字符串函数小结

    1.求字符串长度 string.len(str) 2.大小写转换 string.upper(str) string.lower(str) 3.字符串查找(非全局) --func_string.lua ...

  7. Android 设置让EditText不自动获取焦点

    在EditText所在的父控件中设置如下属性: android:focusable="true" android:focusableInTouchMode="true&q ...

  8. 合并BIN文件的两种方法&lpar;转&rpar;

    源:http://blog.chinaunix.net/uid-20745340-id-1878803.html 合并BIN文件的两种方法 在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一 ...

  9. 【小白成长撸】--链栈&lpar;C语言版&rpar;

    // 链栈.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #include <st ...

  10. LeetCode1-5题

    1.两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个 ...