2015-04-05 75 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 =新的扫描仪(文件);