我创建缓冲作家

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)),但收到了invalidFormatConversionException x!= java.lang.String的错误。

最佳答案

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

errorReport.write(String.format("%03x", version));

09-06 17:49