java程序中线程的字数计算
我的任务是编写一个程序来查找目录中所有文件的字数(也包括嵌套文件) 目录)创建进程或线程。我被要求为每个文件创建一个进程或线程,并且 此进程或线程将计算文件中的字数。当进程或线程 完成计数后,它将写入文件名以及文件中有多少字。在 结束时,将显示所有文件的总字数。 对于我的任务,我制定了以下计划:java程序中线程的字数计算,java,multithreading,thread-safety,Java,Multithreading,Thread Safety,我的任务是编写一个程序来查找目录中所有文件的字数(也包括嵌套文件) 目录)创建进程或线程。我被要求为每个文件创建一个进程或线程,并且 此进程或线程将计算文件中的字数。当进程或线程 完成计数后,它将写入文件名以及文件中有多少字。在 结束时,将显示所有文件的总字数。 对于我的任务,我制定了以下计划: package cloudS; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOExcepti
package cloudS;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.File;
public class WordCount1
{
private static int count = 0;
public static void main (String [] args)
{
String path = "C:\\Users\\$mit\\Desktop";
path = path + "\\" + args[0];
String filename = args[0];
task1(filename, path);
task2(filename, path);
System.out.println("Total Word " + count);
}
public static void task2 (String filename, String path)
{
File file = new File (path);
if (file.isDirectory())
{
String [] name = file.list();
String [] paths = new String [name.length];
for (int i=0; i<name.length; i++)
{
paths[i] = path + "\\" + name[i];
task2(name[i], paths[i]);
}
}
else
{
BufferedReader br = null;
FileReader fr = null;
int wordCount = 0;
try
{
fr = new FileReader(path);
br = new BufferedReader (fr);
String line = null;
while ((line = br.readLine()) != null)
{
String [] array = line.split(" ");
wordCount = wordCount + array.length;
count = count + array.length;
}
}
catch (IOException e)
{
System.out.println("IOException");
}
System.out.println (filename + "\t" + wordCount);
try
{
br.close();
fr.close();
}
catch (IOException e)
{
System.out.println("IOException");
}
}
}
public static void task1 (String filename, String path)
{
BufferedReader br = null;
FileReader fr = null;
int wordCount = 0;
try
{
fr = new FileReader(path);
br = new BufferedReader (fr);
String line = null;
while ((line = br.readLine()) != null)
{
String [] array = line.split(" ");
wordCount = wordCount + array.length;
}
}
catch (IOException e)
{
System.out.println("IOException");
}
System.out.println (filename + "\t" + wordCount);
try
{
br.close();
fr.close();
}
catch (IOException e)
{
System.out.println("IOException");
}
}
}
包云;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.io.File;
公共类WordCount1
{
私有静态整数计数=0;
公共静态void main(字符串[]args)
{
String path=“C:\\Users\\$mit\\Desktop”;
path=path+“\\”+args[0];
字符串文件名=args[0];
task1(文件名、路径);
task2(文件名、路径);
System.out.println(“总字数”+计数);
}
公共静态void task2(字符串文件名、字符串路径)
{
文件=新文件(路径);
if(file.isDirectory())
{
String[]name=file.list();
字符串[]路径=新字符串[name.length];
对于(int i=0;i您是否向程序传递了任何参数?看起来您的args数组可能是空的,但您正在尝试使用args[0]
您能告诉我是在哪一行出错的吗?是的,我知道args错误,但如何修复?非常感谢您的帮助,先生。@Anirudh“WordCount1.java:15
”在你的例外情况下,15
是错误的行号。我建议你找一位导师来帮助你编写这段代码,因为即使你用参数运行程序以通过第一期,我想你也会遇到其他问题。好的,非常感谢先生!呃……你的线程在哪里?