1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java文件读写不完整_Java读取文件内容不完整

java文件读写不完整_Java读取文件内容不完整

时间:2019-04-22 06:11:17

相关推荐

java文件读写不完整_Java读取文件内容不完整

我想把文件一行一行地读出来存入到ArrayList中,countChar是计算文件中的字符个数用的。countChar的结果是对的,可是我在while循环里面逐行打印字符串s后发现,只打印了文件的后半部分,前半部分没有打印出来。照理说countChar的结果是对的,那s就是有读到文件的每一行,那为什么到打印的时候就只有文件的一部分呢?

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++;

FileReader reader = new FileReader(file);

BufferedReader br = new BufferedReader(reader);

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

String s = br.readLine();

//System.out.println("汪汪汪汪汪汪无无无无无无无无无无无无无");

while(s!=null) {

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

//System.out.println(s);

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

s = br.readLine();

}

br.close();

}

}

}

}

完整代码

package counter;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.File;

import java.util.ArrayList;

public class AnalysisFileNumber {

private int numberOfJavaSourceFiles;

private File directory;

//private long totalSize;

private int noteNumber;

private int charInNoteNumber;//注释中的字符数

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

private ArrayList list;

//private String s;

public AnalysisFileNumber(File directory) throws Exception{

this.directory = directory;

list=new ArrayList();

this.parse(directory, 1);

}

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++;

FileReader reader = new FileReader(file);

BufferedReader br = new BufferedReader(reader);

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

String s = br.readLine();

//System.out.println("汪汪汪汪汪汪无无无无无无无无无无无无无");

while(s!=null) {

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

//System.out.println(s);

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

s = br.readLine();

}

br.close();

// for(int i=0;i

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

// }

AnalysisNoteNumber ann =new AnalysisNoteNumber(list);

this.noteNumber+=ann.getCountNote();//获取注释数

this.charInNoteNumber+=ann.getCharInNote();//获取注释中的字符数

list.clear();

list.addAll(ann.getList());//此时的list是文件中除注释和输出语句外的部分

//查找list中的关键字

AnalysisKeyNumber akn=new AnalysisKeyNumber(list);

}

}

}

}

public int getNumberOfJavaSourceFiles() {

return numberOfJavaSourceFiles;

}

public long getCountChar() {

return countChar;

}

public int getNoteNumber() {

return noteNumber;

}

public int getCharInNoteNumber() {

return charInNoteNumber;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。