JAVA如何将int写入文件?

时间:2013-11-25 04:38:48

标签: java file int writer

我应该创建一个文件(已完成,它被称为“factoriales.txt”)并在其中打印10的值! (这是3628800),事情是,我似乎无法将值写入文件。我已经知道如何写文字,但这不会工作....这就是我到目前为止所做的。请帮忙!

    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();
            }
        }
    }

4 个答案:

答案 0 :(得分:2)

原因是什么

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

运行到无穷大,因为1不能减少到10

应该是

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

并将数据类型更改为长

答案 1 :(得分:1)

更改for循环:

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

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

你会得到正确的结果。

尝试并继续。

答案 2 :(得分: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

答案 3 :(得分:0)

如果您想以文本格式保存数字,请使用PrintWriter,它有编写数字的方法。