java list存储错乱_Java用ArrayList存文件不完整

这个程序的功能有计算一个文件夹内.java文件的个数和字符个数。现在假设文件夹里面就只有一个文件。我把文件里面的内容一行一行地读出来存到ArrayList里面,可是当我在parse()里面执行完collectDoc(file),再输出list后发现,就只输出了文件的后半部分,文件的前半部分不知道去哪里了

package counter;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.File;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import java.util.TreeSet;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class AnalysisFileNumber {

private int numberOfJavaSourceFiles;

private File directory;

private int countChar;//所有文件的字符数

private ArrayList list;

private Map map;

private String dirName;

private int countNote;

private int charInNote;

public AnalysisFileNumber(File directory,String dirname) throws Exception{

this.directory = directory;

this.dirName=dirname;

list=new ArrayList();

map=new HashMap();

this.parse(directory, 1);

//writeDoc();//将结果写入文件

}

private void parse(File dir, int n) throws Exception{

File[] files = dir.listFiles();

for (File file : files) {

if (file.isDirectory()) {

parse(file, n + 1); // 递归

}else {

if (file.getName().toLowerCase().endsWith(".java")) {

this.numberOfJavaSourceFiles++;

//将文件存入list中,并计算字符数

collectDoc(file);

}

}

}

}

public void collectDoc(File file) throws Exception{

FileReader reader = new FileReader(file);

BufferedReader br = new BufferedReader(reader);

list.clear();//在收录文件前先清空list

String s = br.readLine();

while(s!=null) {

countChar = countChar+s.length()+1;//字符个数就是字符长度

list.add(s);//list存的是单个文件

// System.out.println(s);

s = br.readLine();

}

for(int i=0;i

System.out.println(list.get(i));

}

br.close();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值