用到 BufferedReader 和 FileReader 两个类就行
FileReader:用于读取字符流
BufferedReader:用于从字符输入流中读取文本
主要代码如下:
/*
@param word 字符串key
@return count 返回字符串在文件中出现的次数
*/
import java.io.*;
public class WordsCount {
private int count =0;
public int wordsCount(String word){
try {
//从文件中读取文本
BufferedReader reader = new BufferedReader(new FileReader("D:\\test1\\A.txt"));
String line = null;
while ((line = reader.readLine())!=null){ //读取一行文本,换行符“\n”和回车符"\r"视为一行
//初始化字符串key在该行文本中第一次出现的位置
int index =-1;
/*
判断该行文本长度是否大于字符串长度,字符串是否在该字符串key内,并将首次出现位置赋值给index
然后,line通过substring方法变成该行去除首次字符串key的子字符串
*/
while (line.length()>=word.length()&&(index=line.indexOf(word))>=0){
count++;
line = line.substring(index+word.length());
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return count;
}
}
测试和用例:
public class Test {
public static void main(String[] args) {
WordsCount wordsCount = new WordsCount();
System.out.println(wordsCount.wordsCount("good"));
}
}
运行结果: