1

我创建缓冲作家

BufferedWriter errorReport = new BufferedWriter(new FileWriter("ErrorReport.txt"));

然后我想在将整数转换为十六进制时写。

  errorReport.write(Integer.toHexString(version))

这非常有效,除了它在写入最小可能长度时省略了前导 0。说“版本”的长度是一个字节,只打印 6。好吧,我知道实际值实际上是 06。我如何保留这些前导 0?

我尝试了 errorReport.write(String.format("%03x", Integer.toHexString(version)),但出现了非法格式转换异常 x != java.lang.String 的错误

4

2 回答 2

1

x指定十六进制,因此将format通过直接传递整数来执行转换

errorReport.write(String.format("%03x", version)); 
于 2013-08-26T16:42:37.183 回答
1

你很亲密。JVM 抱怨您正在尝试对字符串进行十六进制格式化。尝试errorReport.write(String.format("%03x", version))

于 2013-08-26T16:43:55.133 回答