1

私はEclipseとJavaが初めてです。HW の割り当てがあり、.txt ファイルを読み取るクラスを作成する必要があります。

シミュレートする前に、C ディレクトリに「in.txt」という名前のファイルを作成しました。実行構成では、「C:\in.txt」を引数として書きました。

次のエラーが表示されます。

java.io.FileNotFoundException: C:\in.txt (指定されたファイルが見つかりません)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.(Unknown Source)
at java.io.FileInputStream .(不明なソース)
at java.io.FileReader.(不明なソース)
at Flesch.main(Flesch.java:25)

「C:\in.txt」も書き込もうとしましたが、同じエラーが発生しました。

これが私のコードです:

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Flesch {

    public static void main(String[] args)
    {
        if (args.length != 1)
        {
            System.out.print("error");
            return;
        }       
        BufferedReader mybuffer = null;
        try
        {
            String my_line;
            int words_num=0;
            int senteses=0;
            int verbs=0;
            int word_verbs = 0;
            String word_delimtiters = " ()*&^%$#@!_-=[]{}?;:',.";
            mybuffer = new BufferedReader(new FileReader(args[0]));

            while((my_line = mybuffer.readLine())!= null)//reading the liens
            {
                //counting the number of words
                StringTokenizer token = new StringTokenizer(my_line,word_delimtiters);
                words_num += token.countTokens();
                //counting the verbs
                while (token.hasMoreElements())
                {
                    String word = token.nextToken();
                    word = word.toLowerCase();
                    word_verbs = 0;
                    boolean last_char_is_verb = false;
                    for (int k=0;k < word.length(); k++ )
                    {
                        switch (word.charAt(k)) 
                        {
                            case 'a': if (!last_char_is_verb) word_verbs++; last_char_is_verb = true; break;
                            case 'e': if (!last_char_is_verb) word_verbs++; last_char_is_verb = true; break;
                            case 'i': if (!last_char_is_verb) word_verbs++; last_char_is_verb = true; break;
                            case 'o': if (!last_char_is_verb) word_verbs++; last_char_is_verb = true; break;
                            case 'u': if (!last_char_is_verb) word_verbs++; last_char_is_verb = true; break;
                            case 'y': if (!last_char_is_verb) word_verbs++; last_char_is_verb = true; break;
                            default: last_char_is_verb = false ;
                        }
                    }
                    if (word_verbs == 0)
                        word_verbs = 1;
                    verbs+= word_verbs;
                }

                //counting the number of sentecses
                for(int i=0;i<my_line.length(); i++)
                {
                    if(my_line.charAt(i) == '.' || my_line.charAt(i) == ',' || my_line.charAt(i) == ';' || my_line.charAt(i) == '?' || my_line.charAt(i) == '!')
                    {
                        senteses++;
                    }
                }
            }
            double Flesch = 206.835 - 84.6*(verbs/words_num) -1015*(words_num/senteses);
            System.out.print(Flesch);
            System.in.read();
        }
        catch(IOException e)
        {
            e.printStackTrace();        
        }
        finally
        {
            try
            {
                if (mybuffer != null)
                    mybuffer.close();
            }
            catch(IOException ex)
            {
                ex.printStackTrace();   
            }
        }

    }   


}

このエラーについて Web を検索しましたが、役立つ情報が見つかりませんでした。基本的な何かが欠けているように感じます

4

5 に答える 5