0

整数値に基づいてユーザーに整数を入力させようとしています。以下のコードに示すように、ファイルの内容を読み込むためにmix関数を呼び出しています。私は、このエラーを取得しています:

Project2.java:43: variable urlScan might not have been initialized
                        while (urlScan.hasNext())
                               ^
Project2.java:34: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown
                fileScan = new Scanner (new File("input.txt"));
                       ^

何かアイデア、私がここで間違っているかもしれないことは何ですか?

import java.util.Scanner;
import java.io.*;

public class Project2
{
    public static void main(String[] args) 
    {

                System.out.println("Select an item from below: \n");
                System.out.println("(1) Mix");
                System.out.println("(2) Solve");
                System.out.println("(3) Quit");

                int input;
                Scanner scan= new Scanner(System.in);
                input = scan.nextInt();

                System.out.println(input);  
                if(input==1) {
                    mix();
                }
                else{
                    System.out.println("this is exit");
                    } 
        }




        public static void mix()
          {
                String url;
                Scanner fileScan, urlScan;
                fileScan = new Scanner (new File("input.txt"));
                // Read and process each line of the file
                while (fileScan.hasNext())
                    {
                        url = fileScan.nextLine();
                        System.out.println ("URL: " + url);
                        //urlScan = new Scanner (url);
                        //urlScan.useDelimiter("/");
                        //  Print each part of the url
                        while (urlScan.hasNext())
                        System.out.println ("   " + urlScan.next());
                        System.out.println();
                     }
            }
     }
4

3 に答える 3

3

エラーはかなり表現力豊かです。

  • urlScan ローカル変数を初期化します(ローカル変数はデフォルト値を取得しません)
  • fileScan = new Scanner (new File("input.txt"));周りを包みtry/catchます。または、メソッドがメソッドシグネチャでFileNotFoundExceptionをスローする可能性があることを宣言します。(新しいFile(str)がスローされる可能性がありますFileNotFoundExceptionが、これはチェックされた例外であり、コンパイラーはそれを処理するように強制します)。
于 2013-03-03T23:02:13.590 に答える
1

まず、urlScan初期化されていません。

fileScan = new Scanner (new File("input.txt"));次に、のtry/catchで囲む必要がありますFileNotFoundException

于 2013-03-03T23:02:29.633 に答える
1

ローカル変数は使用前に初期化する必要があるため、次の行のコメントを解除します。

urlScan = new Scanner (url);
于 2013-03-03T23:03:52.653 に答える