Conversion long -> byte[]
Salut,
Je dois ecrire un long dans un fichier, et ce long doit tenir au grand max sur 8 octets. Pour diverses raisons, je dois passer par une String pour ecrire les octets dans mon fichier, comme dans le code ci-dessous. Mais au-dela d'une certaine valeur (99.999.999), la String qui represente mon long est codee sur plus de 8 octets. Comment faire pour que la String representant mon long soit codee sur maximum 8 octets ?
Code:
1 2 3 4 5 6 7 8 9 10
| long goodValue = 99999999l;
String correctSizeString = String.valueOf(goodValue);
int correctSize = correctSizeString.getBytes().length;
long badValue = 100000000;
String badSizeString = String.valueOf(badValue);
int badSize = badSizeString.getBytes().length;
System.out.println("Correctly encoded [" + correctSize + "]");
System.out.println("Wrongly encoded [" + badSize + "]"); |
Code:
1 2
| Correctly encoded [8]
Wrongly encoded [9] |
Merci.
Nuriel