2013-05-06 83 views
0

我試圖創建一個掃描儀類應該輸出一個純文本文件,其中包含以下信息;如何使用掃描儀類來打印純文本文件?

PERSONNAME,地址,城市,PHONE_NUMBER, PERSONNAME,地址,城市,PHONE_NUMBER, PERSONNAME,地址,城市,PHONE_NUMBER, PERSONNAME,地址,城市,PHONE_NUMBER,

我的分隔符是逗號。

每組數據都必須以二進制樹的形式輸出。首先以Name作爲根節點,然後將地址作爲根節點,然後將城市作爲rootnode等。

這是我創建的Java文件,它每次只輸出「usage:java Scanner_Two telephone.txt」+「文件位置」,下面沒有樹。任何人都可以告訴我我哪裏出了問題。我創建了一個Entry類,BinaryTreeNode類和Binary Tree類以及。

import java.util.Scanner; 
import java.io.File; 
import java.io.FileNotFoundException; 

public class Scanner_Two 
{ 

    private static void readFile(String TreeName) 
    { 

     try { 
     // Scanner input = new Scanner (new File("telephone.txt")).useDelimiter("\\s*,\\s*"); 
     Scanner scanned = new Scanner(new File(TreeName)); 

     scanned.useDelimiter 
      (System.getProperty("line.separator")); 

     while (scanned.hasNext()) 
     { 
      parseLine(scanned.next()); 
     } 

     scanned.close(); 
     } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
     } 
    } 

private static void parseLine(String line) 
{ 
     Scanner lineScanner = new Scanner(line); 
     lineScanner.useDelimiter("\\s*,\\s*"); 

     String rootnode = lineScanner.next(); 
     String bone = lineScanner.next(); 
     String btwo = lineScanner.next(); 
     String bthree = lineScanner.next(); 

     System.out.println("Name: " + rootnode + " Address: " + bone + ", City: " + btwo + ", Telephone Number: " + bthree); 
} 

public static void main(String[] args) 
{ 
     if(args.length != 1) 
     { 

     System.out.println("usage: java Scanner_Two Person.txt " + "file location"); 
     System.exit(0); 

     } 

     readFile(args[0]); 
} 

} 
+1

你在傳遞作爲參數傳遞給你的程序?看起來你要麼傳遞太多參數,要麼太少。 – FDinoff 2013-05-06 19:35:29

+0

你從哪裏開始?從Eclipse(或其他IDE)或命令提示符處? – 2013-05-06 19:36:27

回答

0

如果您正在使用

if(args.length != 1) 
{   
    System.out.println("usage: java Scanner_Two Person.txt " + "file location");  
    System.exit(0);  
}  

,你會得到實際打印出這個消息,這意味着你要麼有小於1點的參數或多個參數。你應該檢查這個。

0

您所描述的問題與Scanner類不存在問題,正如您在標題中指出的那樣,但實際上是在處理參數時。在下面的代碼,(位於主法),我們可以看到,它甚至擊中掃描儀聲明之前你的計劃失敗:

if(args.length != 1) { 
System.out.println("usage: java Scanner_Two Person.txt " + "file location"); 
System.exit(0); 
} 

由於此代碼執行時,我們知道,ARGS進入的主要方法有0或多於1個元素。我打算大肆揮灑,並猜測你是一個新手,在這種情況下,你應該真的在研究如何使用command line arguments。通常命令行參數僅在通過某些命令行環境(例如終端或命令提示符)執行時使用。如果您使用IDE,儘管IDE是特定的,但可以輸入這些參數。

如果您具體告訴我們您是如何執行代碼的,並且通過命令行執行特定的命令,我可以提供更詳細的答案。

甚至比學習有關命令行環境中更容易,並反覆測試更方便,將使用硬編碼的主要方法:

public static void main(String[] args) { 
readFile("C:\\[filepath]\\Person.txt"); 
}