【问题标题】:Writing an array of floating points to a file将浮点数组写入文件
【发布时间】:2017-02-25 18:11:37
【问题描述】:

我正在尝试将浮点数组列表存储到文件中。
我尝试使用 DataOutputStream 写入文件,它工作得很好,只是数据不是以人类可读的格式写入的。
我知道我必须使用 print writer 以文本格式写入数据,但是它不支持写入浮点数。

PrintWriter writer = new PrintWriter("filename.txt");
writer.write(naiveNearestPoints(points.get(i))); //Gives an error
writer.println(naiveNearestPoints(points.get(i)));//**updated** correct way to do it

还有其他方法可以将浮点数写入可读格式的文件吗?

【问题讨论】:

标签: java file


【解决方案1】:

PrintWriter 确实支持写入浮点值:print(float)print(double)

【讨论】:

    【解决方案2】:

    你这是什么意思?

    不支持写浮点数

    PrintWriter 实际上可以是print(float)print(double)


    如果这对您不起作用,那么如果您可以 System.out.print 浮点数,您几乎可以通过将 System.out 重定向到 File 来轻松写入文件。

    例如

    File out = new File("out.txt");
    try {
        System.setOut(new PrintStream(out));
    } catch (Exception e) {
         e.printStackTrace();
    }
    
    // loops over list, print with System.out.print
    

    【讨论】:

    • 我试图做这样的事情 PrintWriter writer = new PrintWriter("NaiveSolution.txt"); writer.write(naiveNearestPoints(points.get(i)));由于这给了我一个错误,所以我认为我无法使用 PrintWriter 编写浮点数。但现在我明白了,谢谢!
    • 您没有在问题中显示代码。我的回答只是一个写入文件的例子,在 Java 中有几种方法可以做到
    • 我的错,我应该这样做。抱歉,再次感谢!
    • 这破坏了打印到终端的能力,没有任何好处。在这里使用System.setOut 而不是直接创建一个新的PrintWriterPrintStream 并直接使用它是一个非常糟糕的主意。
    • @Chai So?这只是一个简单的例子。不像我在生产中运行它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 2021-12-22
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多