2016-03-04 84 views
0

我從java的代碼中獲得了我希望使用scanner類來輸出文件標記的內容的令牌的文件,該文件是來自命令行的爭論,但由於某種原因,它似乎不適用於我。如何獲取java掃描儀類從cmd讀取文件作爲參數

import java.io.*; 
import java.util.*; 
public class HashTable { 
    public static void main(String args[]) { 

    File inputfile = new File(args[0]); 

    try { 

     Scanner sr = new Scanner(inputfile); 

     while (sr.hasNextLine()) { 
     int i = sr.nextInt(); 
     System.out.println(i); 
     } 
     sr.close(); 
    } 
    catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 
} 
+0

當你運行它會發生什麼? –

+0

這是什麼行爲?它是否拋出任何異常或者什麼都不打印? –

+0

這是打印的第一個項目,但之後它說異常在線程主java.MisMatchException,該文件有數字和字母的混合 – user2956865

回答

1

你需要改變:

INT I = sr.nextInt();

通過

字符串I = sr.next();

MisMatchException由令牌超出範圍引起的(將被轉換成整數)

+0

謝謝我沒有看到你的評論,但我做到了,無論如何,現在它的作品。無論如何,感謝您的幫助 – user2956865

0
public static void main(final String[] args) 
{ 
    final String input = "1 two 3 four five 6 7"; 
    final Scanner scanner = new Scanner(input); 
    while (scanner.hasNext()) 
    { 
     if (scanner.hasNextInt()) 
     { 
      System.out.println("int: " + scanner.nextInt()); 
     } 
     else 
     { 
      System.out.println ("String: " + scanner.next()); 
     } 
    } 
} 
0

代替

爲int I = sr.nextInt(); System.out.println(i);

使用

的System.out.println(sr.nextLine());