Java文件编写器

时间:2016-03-07 19:21:32

标签: java

我接到了这个任务:

编写一个程序,将输入数字n和文本字符串文件名作为输入,并将n行写入文件,其中每行的格式为:i:sqrt(i)sqrt(i)sqrt(i)。第一列的范围是1..n,而第一个平方根是一位小数,第二列是两位小数,第三列是三位小数。

我在一位大学导师的帮助下想出了这段代码,但是......

  public static void writeFile(final String filePath, final int n) throws IOException {
    try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
        final String format = "%-10s %-10.1f %-10.2f %-10.3f %n";
        for(int i=1;i<=n;i++){
            final double root = Math.sqrt(i);
            writer.write(String.format(format,i+":",root ,root,root));
        }
    }
}

....我如何包含要使用的文本文件?我以为我会做类似于filepath = file.txt的事情。例如。但我不确定如何将其纳入代码中。我想出了将它格式化为小数位,就像任务要求的那样。我是否需要将它包含在for循环中或循环外?感谢

2 个答案:

答案 0 :(得分:0)

当您调用方法时,您将传递filePath作为参数。您只需在代码中设置一次

writeFile("textfile.txt",5);

答案 1 :(得分:0)

您的调用方法应该作为filePath变量的一部分传入文件名。 如果参数中的filePath没有文件名,则可以在方法内定义文件名,并与输入filePath连接。您可以使用派生文件路径来创建文件编写器对象。

String completeFilePath = filePath.concat("file.txt");

try (BufferedWriter writer = new BufferedWriter(new FileWriter(completeFilePath))) {
...
}

完成操作后,请刷新/关闭编写器对象。