2012-07-26 21 views
-1

我似乎無法正確地將數據寫入文件。在命令行參數中,儘管聲明瞭previousley方法,仍然存在一個錯誤,指出'symbol method writeHtmlFile(java.lang.String)'找不到。寫入文件時,命令行參數無法識別聲明的方法

這是在下面的代碼中概述: 任何意見將不勝感激。

new Main().writeHtmlFile("ChangeDrawer.html"); //DISPLAYS THE ERROR THAT THE SYMBOL 
                 //METHOD writeHtmlFile(java.lang.String) 
                 //CANNOT BE FOUND 


    //CALLING ON THE METHOD 

{ 
     String selection=""; 
     Scanner scan = new Scanner (System.in); 

     System.out.println ("Enter P to make a purchase and receive your change"); 
     System.out.println ("Enter L to load the Change drawer"); 
     System.out.println ("Enter H to write the contents of the Change Drawer to a web page"); 
     System.out.println ("Enter E to exit the program"); 


    while (selection.compareTo("E")!=0) 
    { 
     selection = scan.next(); 
     if (selection.compareTo("P")== 0) 
     makeChange(); 
     else if (selection.compareTo("L")==0) 
      loadFloat(); 
     else if (selection.compareTo("H")==0) 
     writeHtmlFile(); 

    } 
     System.out.println ("Ending .............................. "); 

} 

// THE METHOD TO WRITE THE FILE 

    public static void writeHtmlFile() 
    { 
     String ChangeDrawer; 

     BufferedWriter bufferedWriter = null; 

     try { 

      //Construct the BufferedWriter object 
      bufferedWriter = new BufferedWriter(new FileWriter(ChangeDrawer)); 

      //Start writing to the output stream 
      bufferedWriter.write("Writing line one to file"); 
      bufferedWriter.newLine(); 
      bufferedWriter.write("Writing line two to file"); 

     } catch (FileNotFoundException ex) { 
      ex.printStackTrace(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } finally { 
      //Close the BufferedWriter 
      try { 
       if (bufferedWriter != null) { 
        bufferedWriter.flush(); 
        bufferedWriter.close(); 
       } 

//COMMAND LINE ARGUMENTS 

    public static void main(String[] args) { 
     new Main().writeHtmlFile("ChangeDrawer.html"); //DISPLAYS THE ERROR THAT THE SYMBOL 
                 //METHOD writeHtmlFile(java.lang.String) 
                 //CANNOT BE FOUND 
    } 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 

    } 
+4

這是關於這段代碼的第三或第四個問題,我今晚見過你。您是否想過閱讀Java編程教程或書籍?您遇到任何教程都會涉及的基本語言概念問題。 – vanza 2012-07-26 05:34:23

回答

1
  1. 你傳遞一個String作爲參數,雖然方法聲明爲writeHtmlFile()
  2. 您將該方法調用爲非靜態。從聲明中刪除static關鍵字。

變化

public static void writeHtmlFile() 

public void writeHtmlFile(String ChangeDrawer) 
+2

在Java中,它是合法的(如果令人困惑)在實例上調用靜態方法。所以這不是錯誤味精的原因。 – 2012-07-26 05:34:53

+1

...並且肯定不是在這種情況下所需要的。 – aioobe 2012-07-26 05:36:49

1

的問題是,你有這些電話:writeHtmlFile("ChangeDrawer.html");但隨後,有這個簽名的方法:public static void writeHtmlFile()。你沒有這樣的東西:public static void writeHtmlFile(String str)

對於Java編譯器,您所追求的內容不存在。您將需要更改方法調用或方法的簽名。