我正在尝试使用PrintWriter.printf()
将格式化的文本写入文件。
在 ubuntu(Java版本为1.6.0_41)上编译时,出现错误消息:
cannot find symbol method printf(java.lang.String, int)
我尝试使用方法printWriter.format ()
,但给出了相同的错误。
在 Windows(Java版本为1.8.0_162)上有效。
以下是包含错误的方法:
public void fileWriting(TestSerialMsg message) throws IOException {
FileWriter fileWriter = new FileWriter("ReceivedMsg.txt");
PrintWriter printWriter = new PrintWriter(fileWriter);
printWriter.print("Some String");
printWriter.printf("received counter is %d",message.get_counter());
printWriter.close();
}
错误:
TestSerial.java:85: cannot find symbol
symbol : method printf(java.lang.String,int)
location: class java.io.PrintWriter
printWriter.printf("received counter is %d",message.get_counter());
^
1 error
答案 0 :(得分:0)
方法printf
的第二个参数是Object
的数组。您的方法message.get_counter()
返回的值是一个int
,它是一个原始值,而不是Object
。因此,该消息表明没有printf
方法具有两个参数,其中第一个是String
,第二个是int
。
根据Integer
返回的值创建一个message.get_counter()
,并在调用方法printf
时将其用作第二个参数,即
printWriter.printf("received counter is %d", Integer.valueOf(message.get_counter()));
或者,您可以使用方法println
代替printf
,如...
printWriter.println("received counter is " + String.valueOf(message.get_counter()));