Добрый день! Составил программу, вытаскивающую из сертификата электронной подписи серийный номер
import java.io.*;
import java.math.BigInteger;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.cert.CertificateFactory;
import javax.security.cert.X509Certificate;
import javax.xml.bind.DatatypeConverter;
import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
    public File folderN = new File("C:\\TEST\\CER\\");
    private FileOutputStream outputStream;
    private void Run() {
        try {
            outputStream = new FileOutputStream(folderN + "\\result.txt");
        }  catch (Exception e) {
            System.out.println("Не удалось открыть на запись файл с результатами");
            return;
        }
        String[] files = folderN.list(new FilenameFilter() {
            @Override public boolean accept(File folder, String name) {
                return name.endsWith(".cer");
            }
        });
        for ( String fileName : files ) {
            System.out.println("File: " + folderN + "\\" + fileName);
            ProcessFile(folderN + "\\" + fileName);
        }
        try {
            outputStream.close();
        }  catch (Exception e) {
            System.out.println("Не удалось сохранить результат");
        }
    }
    public static String toHexadecimal(String text) throws UnsupportedEncodingException
    {
        byte[] myBytes = text.getBytes("UTF-8");
        return DatatypeConverter.printHexBinary(myBytes);
    }
    private void ProcessFile(String filename)
    {
        try {
            FileInputStream is = new FileInputStream(new File(filename));
            CertificateFactory cf = CertificateFactory.getInstance("X.509");
            java.security.cert.Certificate cert = cf.generateCertificate(is);
            java.security.cert.X509Certificate t = (java.security.cert.X509Certificate) cert;

            outputStream.write(filename.getBytes());
            outputStream.write('\t');

            String serial = new String (t.getSerialNumber().toString());
            System.out.println(serial);
            outputStream.write(serial.getBytes());
            outputStream.write('\t');

        } catch (Exception e) {
            System.out.println("Перехвачено исключение");

        }
    }

    public static void main(String[] args) {

        Main M = new Main();
        M.Run();

    }
}
getSerialNumber() имеет тип данных BigInteger и выводит длинное число в десятеричной системе. Мне нужно получить данные в 16-разрядной системе. Подскажите, как можно решить эту задачу?