2013-11-25 119 views
2

我應該創建一個文件(完成,它被稱爲「factoriales.txt」)並在其中打印10的值! (這是3628800),事情是,我似乎無法將該值寫入文件。我已經知道如何寫文本,但這不會工作....這是我到目前爲止。請幫忙!JAVA如何將int寫入文件?

import java.io.File; 
    import java.io.FileWriter; 
    import java.io.IOException; 

    public class D09T9e2 
    { 
     public static void main(String[] args) 
     { 
      try 
      { 
       File fac = new File("factoriales.txt"); 
       if (!fac.exists()) 
       { 
        fac.createNewFile(); 
       } 
       System.out.println("The file has been created."); 
       int r = 1; 
       for (int i = 1; i<=10; i--) 
       { 
        r = r * i; 
       } 
       FileWriter write = new FileWriter(fac); 
       write.write(""+r); 
       write.close(); 
      } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    } 

這裏是我如何解決它感謝大家在這裏,我希望你喜歡這個簡單的方法:

import java.io.File; 
    import java.io.FileWriter; 
    import java.io.IOException; 

    public class D09T9e2 
    { 
     public static void main(String[] args) 
     { 
      try 
      { 
       File fac = new File("factoriales.txt"); 
       if (!fac.exists()) 
       { 
        fac.createNewFile(); 
       } 
       System.out.println("\n----------------------------------"); 
       System.out.println("The file has been created."); 
       System.out.println("------------------------------------"); 
       int r = 1; 
       FileWriter wr = new FileWriter(fac); 
       for (int i = 1; i<=10; i++) 
       { 
        r = r * i; 
        wr.write(r+System.getProperty("line.separator")); 
       }    
       wr.close(); 
      } 
      catch (IOException e) 
      { 
       e.printStackTrace(); 
      } 
     } 
    } 
+2

INT斜面保持10!使用長 – ManZzup

回答

2

的原因,任何方式是

for (int i = 1; i<=10; i--) 

運行無窮大,因爲1不能減至10

應該是

for (int i = 1; i<=10; i++) 

,並更改數據類型長以及

+2

技術上,1將減小至10這將需要(2^32 - 9)的迭代雖然 – Ron

+0

:d didnt計數在這個 – ManZzup

+1

在這個確切的情況下,我= 1,0,-1,-2,...,-2147483648,+2147483647。因此,循環將運行2147483650次 – Ron

1

變化for循環:

for (int i = 1; i<=10; i--) 

for (int i = 1; i<=10; i++) 

和你會ge得到正確的結果。

有一個嘗試,並繼續前進。

0

如果要以文本格式保存數字,請使用PrintWriter,它具有編寫數字的方法。

1
public static void main(String[] args) 
    { 
     try 
     { 
      File fac = new File("c:\\bea\\factoriales.txt"); 
      if (!fac.exists()) 
      { 
       fac.createNewFile(); 
      } 
      System.out.println("The file has been created."); 
      int r = 1; 
      FileWriter write = new FileWriter(fac); 
      write.write(""); 
      for (int i = 1; i<=10; i++) 
      { 
       r = r * i; 
       write.append(r + "\n"); 
      } 

      write.flush(); 
      write.close(); 
     } 
     catch (IOException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

輸出:

1 
2 
6 
24 
120 
720 
5040 
40320 
362880 
3628800 
+0

感謝您的回答!我查了一下,這正是我必須做的xD,但你能告訴我如何讓\ n在文本文件中工作嗎?它在同一行顯示答案。 – MexicanJudge

+0

哦,沒關係我在(「」+ r ... 謝謝你!)之後用System.getProperty(「line.separator」)修復它。 – MexicanJudge