本次改进是在原有功能需求及代码基础上额外做的修改,保证了原有的基础需求之外添加了新需求的功能。
功能:
1. 小文件输入——从控制台由用户输入到文件中,再对文件进行统计;
2.支持命令行输入英文作品的文件名;
3.支持命令行输入存储有英文作品文件的目录名,批量统计;
4.从控制台读入英文单篇作品,重定向输入流。
实现:
1.判断输入方式,如果从命令行传递参数则直接对文件进行统计;如果未传递参数,其方式同控制台相同,由用户从标准输入流输入到文件,再对文件进行词频统计。这里如果传入文件路径时会对其是否是文件夹进行判断,如果是文件夹,则对其目录中的文件进行统计。
if (args.length == 0) {
Scanner in = new Scanner(System.in);
FileWriter out = new FileWriter("Content.txt");
System.out.println("请输入内容,最后以Q结束:");
while (in.hasNext()) {
out.write(in.nextLine()+"\r\n");
}
out.close();
in.close();
new FileProccessing("Content.txt");
}
for (int i = 0; i < args.length; i++) {
String FileName = args[i];
File fs = new File(FileName);
if (fs.isDirectory()) {
File[] filelist = fs.listFiles();
for (int n = 0; n < filelist.length; n++) {
new FileProccessing(filelist[n].getAbsolutePath());
}
} else {
new FileProccessing(FileName);
}
}
2.对ByValueComparator类做了修改,使其能够按词频降序排列的同时,对同频率的单词进行升序排列。
public class ByValueComparator implements Comparator> {
Map hashmap;