首页 > 代码库 > 词频统计多需求版

词频统计多需求版

下面针对词频统计的不同功能要求给出部分代码和截图,具体代码请访问博客下方提供的链接。

功能1. 小文件输入. 为表明程序能跑,结果真实而不是迫害老五,请他亲自键
盘在控制台下输入命令。

部分代码:

public static void main(String[] args) throws IOException {

FileReader file;
BufferedReader buffer;
Map<String, Integer> hashMap = new HashMap<String, Integer>();
try {
if (args.length != 0) {

// 建立文件输入流
file = new FileReader(args[0]);   //args[0]是运行时后面输入的参数
buffer = new BufferedReader(file);

编译后,运行时在后面直接加参数,运行时截图如下:

技术分享

功能2. 支持命令行输入英文作品的文件名,请老五亲自录入。

部分代码:

public class CountWord02 {
public static void main(String[] args) throws IOException {

FileReader file;
BufferedReader buffer;
Map<String, Integer> hashMap = new HashMap<String, Integer>();
Scanner scan = new Scanner(System.in);
try {
String path = "F:\\document\\";
path += scan.next();  
// 建立文件输入流
file = new FileReader(path+".txt"); //通过原有的路径F:\\document\\+用户在控制台输入的文件名+后缀名".txt"组成文件的绝对路径

buffer = new BufferedReader(file);

编译后,后运行,然后等待用户输入文件名,运行时截图如下:

ps:lost是程序运行后从命令行输入的文件名。

技术分享

 

功能3. 支持命令行输入存储有英文作品文件的目录名,批量统计。

部分代码如下:

public class CountWord03 {
public static void main(String[] args) throws IOException {

FileReader file;
BufferedReader buffer;
Map<String, Integer> hashMap = new HashMap<String, Integer>();
Scanner scan = new Scanner(System.in);
try {

String path = scan.next(); //用户输入目录的绝对路径
File f = new File(path);  //path为文件的目录名
File s[] = f.listFiles();     //列出目录下的文件

for (int i = 0; i < s.length; i++) {
// 确保文件是以.txt结尾
String fileName=s[i].getName();
if (fileName.endsWith(".txt")) {
System.out.println(fileName);
// 建立文件输入流
file = new FileReader(s[i]);

buffer = new BufferedReader(file);

编译后,然后运行,然后等待用户输入目录名,然后目录下的所有.txt文件将会依次展示。运行时截图如下:

ps:f:\document是程序运行后从命令行输入的文件的路径名。

技术分享

 

对于功能四暂时未完成,对于重定向的命令行输入暂时还未完成,后续会尽快补上。

总结:对于这次的词频统计,我的感受是主体程序未变。只是在命令行编译,运行时输入的要求不同,与之相应的是程序中的少量修改。

 

词频统计代码发布地址:  https://coding.net/u/muziliquan/p/classwork02/git/tree/master/homework

词频统计多需求版