1

だから私の質問は、タイトルがどうなるかです。以下は私のコードのスニペットです。try/catch を使用することになっていることは理解していますが、catch で何をすべきかわかりません。/ HERE / BufferedReader が InputStream を取り込めないというエラーが表示されます。BufferedReader を引き続き使用したいので、コンパイラが満足するように、新しい BufferedReader でインスタンス化できる他のクラスはありますか? どんな助けでも大歓迎です、ありがとう!

    //reads in 'dictionary' file
    BufferedReader bReader;
    try
    {
        bReader = new BufferedReader
                (new FileReader("unsortedWords.txt"));
    }
    catch (FileNotFoundException e)
    {
        System.out.print("Enter name of dictionary file: ");
        bReader = new BufferedReader
                (new FileReader(System.in)); /*HERE*/
    }
4

2 に答える 2

3

多分これ:

File file = new File("unsortedWords.txt");
if(file.exists())
{
 // do something
}
else
{
 // prompt for file
 // if command line you can use Scanner or an InputStreamReader
 // if GUI you can use a File Chooser.
}

コマンド ラインまたは GUI の操作方法がわからない場合は、私に尋ねてください。残りのコードを投稿します。

[編集]: コマンドラインを実行しているようですので、これを試してみてください:

InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String line = br.readLine();

[編集]: サンプル クラス (はい、デザインは悪いですが、すぐに書きました):

import java.io.*;

public class Temp
{

    public static void main(String[] args) throws IOException
    {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(isr);
        System.out.println("Hello World!");
        String temp = br.readLine();
        System.out.println("Your line : \"" + temp + "\"");
    }
}

[編集]: これは、私が作成した、あなたのために働くはずのクラスです。

import java.io.*;

public class Temp
{

    public static void main(String[] args) throws IOException
    {
        String fileName = "RandomFileThatDoesntExist";
        File file = new File(fileName);

        if(file.exists())
        {
            FileReader fr = new FileReader(fileName);
            BufferedReader br = new BufferedReader(fr);
            String line;
            while((line = br.readLine()) != null)
            {
                System.out.println(line);
            }
        }
        else
        {
            InputStreamReader isr = new InputStreamReader(System.in);
            BufferedReader br = new BufferedReader(isr);
            System.out.println("Enter file Name:");
            String line;
            while(true)
            {
                line = br.readLine();
                File myFile = new File(line);
                if(myFile.exists())
                    break;
                else
                    System.out.println("Error, file doesn't exist!");
            }
            FileReader fr = new FileReader(line);
            BufferedReader br2 = new BufferedReader(fr);
            System.out.println("File contents:");
            while((line = br2.readLine()) != null)
            {
                System.out.println(line);
            }
        }
    }
}

スクリーンショット:


コマンドラインのスクリーンショット

于 2012-11-13T23:09:01.153 に答える
1

使用中のコードを投稿していないと思います。エラーは から を作成することに関連しているはずFileReaderですImputStream

使用InputStreamReader:

BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

ドキュメントに記載されているとおり:)

于 2012-11-13T23:16:49.350 に答える