2013-08-26 2 views
1

Я создаю буферный писательПопытки не Опустит Leading 0 'при записи из Int в Hex с использованием буферного автором

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

Тогда я хотел написать при преобразовании моего целого числа в шестнадцатеричном.

errorReport.write(Integer.toHexString(version)) 

Это прекрасно работает, за исключением того, что он пропускает ведущие 0, поскольку он записывает минимально возможную длину. Скажите, что «версия» является байтом в длину и просто печатает 6. Ну, я знаю, что фактическое значение на самом деле 06. Как мне сохранить эти ведущие 0?

Я попытался errorReport.write (string.Format ("% 03X", Integer.toHexString (версия)), но получаю сообщение об ошибке для illegalFormatConversionException х! = Java.lang.String

ответ

1

x определяет шестнадцатеричное так format выполнит преобразование, передавая целое непосредственно

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

0 -.. раздуть нулями и 3 - установить ширину в 3 и «x» для шестнадцатеричных [см.] (Http://stackoverflow.com/a/275715/1897935) –

+0

Красивые. Ага. Я походил на то, что дважды меняю. Спасибо –

1

вы очень близко JVM жалуется, что вы пытаетесь заколдовать-формат строки Попробуйте errorReport.write(String.format("%03x", version))

+0

Красивые. Ага. Я походил на то, что дважды меняю. Спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^