[
https://issues.apache.org/jira/browse/LANG-341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12768573#action_12768573
]
Henri Yandell commented on LANG-341:
------------------------------------
Very uncomfortable with c+p code from java.io.
Harmony to the rescue:
http://svn.apache.org/repos/asf/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataInputStream.java
http://svn.apache.org/repos/asf/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/DataOutputStream.java
> [NumberUtils] Please add number <> byte[] methods
> -------------------------------------------------
>
> Key: LANG-341
> URL: https://issues.apache.org/jira/browse/LANG-341
> Project: Commons Lang
> Issue Type: New Feature
> Reporter: Lilianne E. Blaze
> Fix For: 3.0
>
> Attachments: 341-v1-src.patch, 341-v1-test.patch
>
>
> Hello,
> I need a set of methods to convert Long to or from a byte[] array, as if
> writing / reading from Data(Input/Output)Stream(
> ByteArray(Input/Output)Stream ).
> First, doing it with Streams seems a bit wasteful, second, it seems a
> pretty general use. Would it be possible to add something like that to,
> for example,
> org.apache.commons.lang.math.NumberUtils?
> Example code:
> static public long toLong(byte[] b)
> {
> return toLong(b, 0);
> }
>
> static public long toLong(byte[] b, int offset)
> {
> return (((long)b[offset] << 56) +
> ((long)(b[offset + 1] & 255) << 48) +
> ((long)(b[offset + 2] & 255) << 40) +
> ((long)(b[offset + 3] & 255) << 32) +
> ((long)(b[offset + 4] & 255) << 24) +
> ((b[offset + 5] & 255) << 16) +
> ((b[offset + 6] & 255) << 8) +
> ((b[offset + 7] & 255) << 0));
> }
>
> static public byte[] longToByteArray(long l)
> {
> byte b[] = new byte[8];
> longToByteArray(l, b, 0);
> return b;
> }
>
> static public void longToByteArray(long l, byte b[], int offset)
> {
> b[offset] = (byte)(l >>> 56);
> b[offset + 1] = (byte)(l >>> 48);
> b[offset + 2] = (byte)(l >>> 40);
> b[offset + 3] = (byte)(l >>> 32);
> b[offset + 4] = (byte)(l >>> 24);
> b[offset + 5] = (byte)(l >>> 16);
> b[offset + 6] = (byte)(l >>> 8);
> b[offset + 7] = (byte)(l >>> 0);
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.