我正在从文件中读取文本,然后创建包含这些文本的另一个文件,但是当我调用函数.format时,无论我做什么,它都会被加下划线。 这是我的代码:
package number3;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Formatter;
import java.util.Scanner;
public class ReadFileCarData {
private static Scanner Infile;
private static Formatter OutFile;
public static void main(String[] args) throws FileNotFoundException{
try
{
Infile = new Scanner(new File("cardata.txt"));
OutFile = new Formatter("cardatasold.txt");
}
catch(FileNotFoundException fnfe)
{
System.out.println("File not found");
System.exit(0);
}
System.out.println("Plate Brand Model Price Power Status");
while(Infile.hasNext())
{
String plate,brand,model,status;
int price,power;
plate = Infile.next();
brand = Infile.next();
model = Infile.next();
price = Infile.nextInt();
power = Infile.nextInt();
status = Infile.next();
while(status.equals("Sold"))
{
try
{
OutFile.format("%s %s %s %d %d \r\n",plate,brand,model,price,power);
}
catch(Exception e)
{
System.out.print("Error");
}
}
}
Infile.close();
OutFile.close();
}
}
错误消息显示:
Formatter类型中的方法格式(Locale,String,Object [])不适用于参数(String,String,String,String,int,int)
我无法理解为什么,因为根据我的说法,我已经写了正确的格式。 知道我做错了什么吗?感谢。
答案 0 :(得分:3)
对我来说很好。这是输出:
Plate Brand Model Price Power Status
您遇到的问题是您的编译器无法识别方法上的var-args(并认为它只是Object[]
)并且可能甚至不会对整数进行自动装箱。这两个都是Java 1.5的功能。
这可能意味着您的IDE /编译器设置错误。打开项目的设置并查找目标兼容性,生成.class兼容性或类似内容,并将其从1.4切换到1.7 / 1.8。
答案 1 :(得分:1)
您可能想要检查Java版本。
同时,你可以尝试使用这个功能。
OutFile.format(Locale.getDefault(),"%s %s %s %d %d \r\n", new Object[]{plate,brand,model,price,power});
希望它有所帮助;)