2014-06-18 294 views
0

我正在嘗試將隨機數寫入文件。 SO基本上是每行一個數字,方法名稱取filepath參數和long n參數,它是生成的隨機數的個數。 這是我到目前爲止有:如何從命令行運行程序?

public void generate(long n, String filePath) throws FileNotFoundException 
    { 
     PrintWriter out = new PrintWriter("filePath"); 
     Random r = new Random(); 
     for(int i = 0; i < n; i++) 
     { 
      int num = r.nextInt(10); 
      out.write(num + "\n"); 
     } 

     out.close(); 
    } 

我在正確的軌道上?另外我將如何去通過CMD運行這個程序。我知道用於編譯和運行它的命令,但我認爲我需要一個測試人員來運行它。所以有人可以告訴我如何通過cmd來運行這些代碼。

編輯:明白了!感謝大家的幫助!

+0

一些閱讀將是審慎的數量:http://docs.oracle.com/javase/tutorial/getStarted/application/index.html? utm_source = twitterfeed&utm_medium = twitter,http://csis.pace.edu/~bergin/KarelJava2ed/ch 2/javamain.html,http://java67.blogspot.com/2012/08/what-is-main-method-in-java-why-main-is.html – user2864740

+1

(一次一個問題..並且make肯定它會反映在標題中。) – user2864740

回答

2

你接近你的印刷。 而不是做

out.write(num + "\n"); 

的,而不是你會想要做

out.println(num); 

它是跨平臺(在我看來,更易於閱讀)。

此外,爲了運行命令行程序,所有你需要做的是在你的類中添加一個main方法,像這樣

public static void main(String[] args) throws FileNotFoundException { 
    int n = Integer.parseInt(args[0]); 
    String filePath = args[1]; 
    YourClass c = new YourClass(); 
    c.generate(n, filePath); 

} 

這主要假設你正在傳遞2從命令行參數,其次是文件名

希望這是有幫助的

1

filePath是一個保存文件路徑的變量,所以你不想用雙引號括起來。如果這樣做,它將被視爲String,因此程序將搜索路徑爲filePath的文件。

PrintWriter out = new PrintWriter(filePath); // no "" 

「測試」可以運行的程序,你運行它以同樣的方式:java programName

0

有兩種方法來測試這一點:

  1. 介紹主要方法類和呼叫你從main生成方法。
  2. 爲此添加一個單元測試框架jar並編寫一個單元測試類&方法。
1
PrintWriter out = new PrintWriter("filePath"); 

應該

PrintWriter out = new PrintWriter(filePath); 

要在參數使用變量名,是你所傳遞的卻是一個字符串。