首页 > 解决方案 > 找不到符号错误_PrintWriter.printf() 方法_

问题描述

我正在尝试将格式化的文本写入带有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

标签: java

解决方案


方法的第二个参数printf是一个数组Object。您的方法返回的值message.get_counter()int原语而不是Object. 因此,没有printf方法接受两个参数的消息,其中第一个是 a String,第二个是 a int

Integer从返回的值创建一个,message.get_counter()并在调用 method 时将其用作第二个参数printf,即

printWriter.printf("received counter is %d", Integer.valueOf(message.get_counter()));

或者,您可以使用 methodprintln而不是printf,如...

printWriter.println("received counter is " + String.valueOf(message.get_counter()));

推荐阅读