为什么我会收到.format的错误? JAVA文件

时间:2015-04-05 13:43:32

标签: java file formatter

我正在从文件中读取文本,然后创建包含这些文本的另一个文件,但是当我调用函数.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)

我无法理解为什么,因为根据我的说法,我已经写了正确的格式。 知道我做错了什么吗?感谢。

2 个答案:

答案 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});

希望它有所帮助;)