2015-04-05 112 views
0

嗨我有下面的代碼,並在閱讀輸入時不斷收到錯誤。我試圖弄清楚這一點,但我沒有這樣做的成功。我輸入無法讀取輸入?

5 
8 1 
1 4 
8 8 
7 15 
4 20 

我的錯誤是

Exception in thread "main" java.util.InputMismatchException 
    at java.util.Scanner.throwFor(Unknown Source) 
    at java.util.Scanner.next(Unknown Source) 
    at java.util.Scanner.nextInt(Unknown Source) 
    at java.util.Scanner.nextInt(Unknown Source) 
    at trapped.main(trapped.java:12) 

我的代碼是

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


public class trapped { 

    public static void main(String[] args) throws IOException { 
     Scanner sc = new Scanner("C:/usaco.txt"); 

     int index = sc.nextInt(); 

    } 

} 
+0

您需要創建一個['File'](http://docs.oracle.com/javase/7/docs/api/java/io/File.html)對象指向您的文本文件並構建您的從那個'掃描儀'。現在,您的'Scanner'對象正在讀取您傳遞的路徑,並且''C「'不是'int'。 – 2015-04-05 02:34:04

回答

1

Scanner(String)變種給你一個掃描儀讀取的串,不是文件的字符串指的是。你可以看到,用下面的代碼:

import java.util.Scanner; 
public class Test 
{ 
    public static void main(String[] args) { 
     Scanner sc = new Scanner("C:/usaco.txt"); 
     String str = sc.next(); 
     System.out.print(str); 
    } 
} 

,輸出文件C:/usaco.txt,而不是文件內容

如果你想從字符串指定的文件閱讀,你需要一個文件對象,是這樣的:

Scanner sc = new Scanner(new File("C:/usaco.txt")); 

按:

import java.util.Scanner; 
import java.io.File; 
public class Test 
{ 
    public static void main(String[] args) { 
     try { 
      Scanner sc = new Scanner(new File("/home/pax/xyzzy.txt")); 
      int ivar = sc.nextInt(); 
      System.out.print(ivar); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     }; 
    } 
} 
0

你必須創建第一個文件對象: File file = new File(「C:/usaco.txt」); 然後 掃描儀sc =新的掃描儀(文件);