我接到了这个任务:
编写一个程序,将输入数字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循环中或循环外?感谢
答案 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))) {
...
}
完成操作后,请刷新/关闭编写器对象。