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