为什么.format会出现错误?JAVA文件

为什么.format会出现错误?JAVA文件,java,file,formatter,Java,File,Formatter,我正在从一个文件中读取文本,然后创建另一个包含这些文本的文件,但当我调用函数时。无论我做什么,格式都会被下划线。 这是我的密码: package number3; import java.io.File; import java.io.FileNotFoundException; import java.util.Formatter; import java.util.Scanner; public class ReadFileCarData { private static Scanne

我正在从一个文件中读取文本,然后创建另一个包含这些文本的文件,但当我调用函数时。无论我做什么,格式都会被下划线。 这是我的密码:

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

}
错误消息显示:

类型格式化程序中的方法格式(区域设置、字符串、对象[])不适用于参数(字符串、字符串、字符串、字符串、int、int)

我不明白为什么,因为根据我的说法,我写的格式是正确的。
知道我做错了什么吗?谢谢。

您可能需要检查您的Java版本
同时,您可以尝试使用此功能

OutFile.format(Locale.getDefault(),"%s %s %s %d %d \r\n", new Object[]{plate,brand,model,price,power});

希望有帮助;)

您可能需要检查您的Java版本
同时,您可以尝试使用此功能

OutFile.format(Locale.getDefault(),"%s %s %s %d %d \r\n", new Object[]{plate,brand,model,price,power});

希望有帮助;)

对我来说很好。这就是输出:

Plate Brand Model Price Power Status
您遇到的问题是,编译器无法识别方法上的var args(并且认为它只是一个
对象[]
),甚至可能无法自动装箱整数。这两个都是Java1.5的特性


这可能意味着您的IDE/编译器设置错误。打开项目的设置,查找目标兼容性、生成的.class兼容性或类似的内容,然后将其从1.4切换到1.7/1.8。

对我来说效果很好。这就是输出:

Plate Brand Model Price Power Status
您遇到的问题是,编译器无法识别方法上的var args(并且认为它只是一个
对象[]
),甚至可能无法自动装箱整数。这两个都是Java1.5的特性


这可能意味着您的IDE/编译器设置错误。打开项目的设置,查找目标兼容性、生成的.class兼容性或类似内容,然后将其从1.4切换到1.7/1.8。

“根据我”——你错了。编译器总是正确的。如果你马上接受这个事实,你会更快。你用什么java版本编译。整数应该自动装箱到整数对象。“根据我的说法”-你错了。编译器总是正确的。如果你马上接受这个事实,你会更快。你用什么java版本编译。整数应该自动装箱到整数对象。虽然这是真的,但这并不能解释为什么他应该检查他的版本。格式化程序从1.5.0开始使用Java,var args(和自动装箱)也从1.5.0开始使用。他的代码应该工作得很好。也许与他的IDE设置有关,也许他选择了1.4兼容性。正如OP所说,检查javac版本。虽然这是真的,但它并没有解释为什么他应该检查他的版本。格式化程序从1.5.0开始使用Java,var args(和自动装箱)也从1.5.0开始使用。他的代码应该工作得很好。也许与他的IDE设置有关,也许他选择了1.4兼容性。正如OP所说,检查javac版本。你是对的,这是一个兼容性错误。我已经将它设置为1.7,现在它工作正常。你是对的,这是一个兼容性错误。我已经将它设置为1.7,现在它工作正常。