51,410
社区成员
发帖
与我相关
我的任务
分享package missi3o2n;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class missi3o2n {
/**
*统计了一个文件夹下面所有txt文件的行数,并查找到了“a”这个词所出现的各个位置
*/
/**
* 项目的目录
*/
String projectName = "E:/";
/**
* 要统计的文件类型
*/
String str[] = new String[]{"txt"};
/**
* 要查找的文字
*/
String find = "a";
List<File> list = new ArrayList<File>();
int linenumber = 0;
FileReader fr = null;
BufferedReader br = null;
public void main(String args[]) {
new missi3o2n().counter(); }
public void counter() {
Date date = new Date();
File file = new File(projectName);
File files[] = null;
files = file.listFiles();
addFile(files);
readLinePerFile();
System.out.println("总行数:" + linenumber + "行");
System.out.println("统计用时:" + (new Date().getTime() - date.getTime()) + "毫秒");
System.out.println("文件数量:" + list.size() + "个");
}
// 将所有符合查找类型的文件都加入到文件列表中
public void addFile(File file[]) {
for (int index = 0; index < file.length; index++) {
if(file[index].isFile()){
String name = file[index].getName().substring(file[index].getName().lastIndexOf(".") + 1);
for(int i = 0; i < str.length; i++){
if(name.equals(str[i])){
list.add(file[index]);
break;
}
}
} else {
addFile(file[index].listFiles());
}
}
}
// 统计文件
public void readLinePerFile() {
try {
for (File s : list) {
int num = 0;
if (s.isDirectory()) {
continue;
}
fr = new FileReader(s);
br = new BufferedReader(fr);
String i = "";
boolean flag = true;
while ((i = br.readLine()) != null) {
num++;
if(find != null && !find.equals("") && i.indexOf(find) != -1){
if(flag){
System.out.println("文件:" + s.getAbsolutePath());
flag = false;
}
System.err.println("查找结果:" + num + "行," + (i.indexOf(find) + 1) + "列");
}
}
if(!flag){
System.out.println();
}
if(find == null || find.equals("")){
System.out.println("文件:" + s.getAbsolutePath());
System.out.println("总行数:" + num + "\n");
}
linenumber += num;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
}
}
if (fr != null) {
try {
fr.close();
} catch (Exception e) {
}
}
}
}
}
){}


package bros.provider.corporate.account;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class missi3o2n {
/**
*统计了一个文件夹下面所有txt文件的行数,并查找到了“a”这个词所出现的各个位置
*/
/**
* 项目的目录
*/
String projectName = "D:/anjianjingling/";
/**
* 要统计的文件类型
*/
String str[] = new String[]{"txt"};
/**
* 要查找的文字
*/
String find = "a";
List<File> list = new ArrayList<File>();
int linenumber = 0;
FileReader fr = null;
BufferedReader br = null;
public static void main(String args[]) {
new missi3o2n().counter(); }
public void counter() {
Date date = new Date();
File file = new File(projectName);
File files[] = null;
files = file.listFiles();
addFile(files);
readLinePerFile();
System.out.println("总行数:" + linenumber + "行");
System.out.println("统计用时:" + (new Date().getTime() - date.getTime()) + "毫秒");
System.out.println("文件数量:" + list.size() + "个");
}
// 将所有符合查找类型的文件都加入到文件列表中
public void addFile(File file[]) {
for (int index = 0; index < file.length; index++) {
if(file[index].isFile()){
String name = file[index].getName().substring(file[index].getName().lastIndexOf(".") + 1);
for(int i = 0; i < str.length; i++){
if(name.equals(str[i])){
list.add(file[index]);
break;
}
}
} else {
addFile(file[index].listFiles());
}
}
}
// 统计文件
public void readLinePerFile() {
try {
for (File s : list) {
int num = 0;
if (s.isDirectory()) {
continue;
}
fr = new FileReader(s);
br = new BufferedReader(fr);
String i = "";
boolean flag = true;
while ((i = br.readLine()) != null) {
num++;
if(find != null && !find.equals("") && i.indexOf(find) != -1){
if(flag){
System.out.println("文件:" + s.getAbsolutePath());
flag = false;
}
System.err.println("查找结果:" + num + "行," + (i.indexOf(find) + 1) + "列");
}
}
if(!flag){
System.out.println();
}
if(find == null || find.equals("")){
System.out.println("文件:" + s.getAbsolutePath());
System.out.println("总行数:" + num + "\n");
}
linenumber += num;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
}
}
if (fr != null) {
try {
fr.close();
} catch (Exception e) {
}
}
}
}
}
