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
是错误的行号。我建议你找一位导师来帮助你编写这段代码,因为即使你用参数运行程序以通过第一期,我想你也会遇到其他问题。好的,非常感谢先生!呃……你的线程在哪里?