在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  Python  網(wǎng)絡(luò)安全/ Java用ArrayList存文件不完整

Java用ArrayList存文件不完整

這個程序的功能有計算一個文件夾內(nèi).java文件的個數(shù)和字符個數(shù)?,F(xiàn)在假設(shè)文件夾里面就只有一個文件。我把文件里面的內(nèi)容一行一行地讀出來存到ArrayList里面,可是當我在parse()里面執(zhí)行完collectDoc(file),再輸出list后發(fā)現(xiàn),就只輸出了文件的后半部分,文件的前半部分不知道去哪里了

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;//所有文件的字符數(shù)
    private ArrayList<String> list;
    private Map<String,Integer> 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<String>();
        map=new HashMap<String, Integer>();
        this.parse(directory, 1);
        //writeDoc();//將結(jié)果寫入文件
    }
    
    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中,并計算字符數(shù)
                    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;//字符個數(shù)就是字符長度
               list.add(s);//list存的是單個文件
              // System.out.println(s);
                s = br.readLine();
             }
             for(int i=0;i<list.size();i++) {
             System.out.println(list.get(i));
         }
             br.close();
    }
回答
編輯回答
萌小萌

第一:你的代碼格式能弄好嗎?看的很亂,盯不清大括號;
第二:控制臺默認能顯示80000個字符,你的java文件有多大....竟然顯示不下.

2017年3月25日 04:43