Multiplatform: how convert int into byte[]???

Hi all,
I need to convert an int value into an array of bytes. An int is represented by 4 bytes, but the problem is that depending on the platform, the most significant byte is the first or the last, so if you convert it directly, like:
int i = 5;
byte b[] = new byte[4];
b[0] = (byte)( (i & 0xff000000) >>> 24);
b[1] = (byte)( (i & 0x00ff0000) >>> 16);
b[2] = (byte)( (i & 0x0000ff00) >>> 8);
b[3] = (byte)( (i & 0x000000ff) );
you cannot export it to another platfroms.
Thank you in advance.

Come on, nobody knows how to detect the byte order in a given platform?
I've been all the day dealing with this, which means all day without producing.
Please, it�s very urgent.
Thank you again.

Similar Messages

  • Converting image into byte array

    Hi all,
    How to convert an integer array image into byte array ?
    here i have a image like this :
    private static int pixelArray[] = {
    0xff000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0xff000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
    From this one i create image like this one :
    Image image = Image.createRGBImage(pixelArray, width, height, true);
    Now i want to convert that pixelArray into byte array ? how to do this
    additionally i want to send this byte array to servlet .
    thanks in advance.

    Hi,
    If you want to convert your int array to a byte array you should
    split each integer into 4 bytes to avoid losing information. You can
    rebuild your integer array later if you need to. I think this code
    will work (i havent tested it):
    byte[] pixel= new byte[pixelArray.length<< 2];
    for (int i= pixelArray.length- 1; i>= 0; i--) {
      int aux= i<< 2;  // i* 4 = i<< 2
      pixel[aux]=    (byte) (pixelArray>> 32);
    pixel[aux+ 1]= (byte) (pixelArray[i]>>> 16);
    pixel[aux+ 2]= (byte) (pixelArray[i]>>> 8);
    pixel[aux+ 3]= (byte) pixelArray[i];
    Greets.

  • Converting MB into bytes

    Hi, is there any easy way of writiing a piece of code, that converts a value in MB or kB into it's equivilant value of computer bytes?
    Cheers.

    well, yeah. simple algebra.
    every 1024 bytes is 1K. Therefore, to convert to bytes:
    bytes = kbytes*1024every 1024 kbytes is 1M. Therefore, to convert to bytes:
    bytes = mbytes*1024*1024or,
    bytes = mbytes*1048576

  • How convert integer into string

    Hi,
    I need to convert answer3 from double into String
    answer3 = Double.parseDouble(dij3)/(1 + Math.pow(( Double.parseDouble(tesside_luas_i) / Double.parseDouble(tesside_luas_j) ),0.5847));

    Now the integer value is string but why i cannot get valur from my servlet to my web page
    package net.mybizaid.isodms.servlet;
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import net.mybizaid.isodms.*;
    public class SPLDataInputServlet extends HttpServlet {
         public void doPost (HttpServletRequest request, HttpServletResponse response)
         throws IOException, ServletException
    System.out.println( "******************** Calculation Servlet ******************" );
                   String dij     ;
                   String population_i ;
                   String population_j ;
                   String project_name = "";
                   String project_status = "";
                   double answer;
                   String handler = "";
                   String url                    = "";
                   double answer3;
                   String dij3 ="";
                   String tesside_luas_i ="";
                   String tesside_luas_j ="";
                   double answer2;
                   String dij2 ="";
                   String luas_i ="";
                   String luas_j ="";
                   String counter                    = "";
                   String i                                   = "";
                   handler                          = request.getParameter( "handler" );
                   dij                    = request.getParameter("dij");
                   population_i               = request.getParameter("population_i");
                   population_j               =     request.getParameter( "population_j");
                   project_name               =     request.getParameter( "project_name");
                   project_status               =     request.getParameter( "project_status");
                   dij2                    = request.getParameter("dij2");
                   luas_i               = request.getParameter("luas_i");
                   luas_j               =     request.getParameter( "luas_j");
                   dij3                    = request.getParameter("dij3");
                   tesside_luas_i               = request.getParameter("tesside_luas_i");
                   tesside_luas_j               =     request.getParameter( "tesside_luas_j");
                   HttpSession session = null;
                   session = request.getSession(true);
                   int cnt = counter != null && !counter.equals("") ? Integer.parseInt(counter) : 0;
                   int ii = i != null && !i.equals("") ? Integer.parseInt(i) : 0;
    //Tesside
    if (handler != null && !handler.equals( "" ) && handler.equals( "cal3" ))
                   try
    System.out.println("The DIJ3 value is :"+dij3);
    System.out.println("The tesside_luas_i value is :"+tesside_luas_i);
    System.out.println("The tesside_luas_j value is :"+tesside_luas_j);
                        answer3 = Double.parseDouble(dij3)/(1 + Math.pow(( Double.parseDouble(tesside_luas_i) / Double.parseDouble(tesside_luas_j) ),0.5847));
                        String str = String.valueOf( answer3 );
    System.out.println("The answer value is :"+str);
                         url = "/jsp/model/tessideAnswer.jsp";
                         dispatchErrorMsg( request, response, url, "" );
              catch (Exception e)
                        request.setAttribute("pd.errorMessage", e.getMessage());
                        dispatchErrorMsg( request, response, "/jsp/Error.jsp", e.getMessage() );
    //PotensiPasaran
    if (handler != null && !handler.equals( "" ) && handler.equals( "cal2" ))
                   try
    System.out.println("The DIJ2 value is :"+dij2);
    System.out.println("The luas_i value is :"+luas_i);
    System.out.println("The luas_j value is :"+luas_j);
                        answer2 = Double.parseDouble(dij2)/(1 + Math.sqrt(( Double.parseDouble(luas_i) / Double.parseDouble(luas_j) )));
    System.out.println("The answer value is :"+answer2);
                         url = "/jsp/model/potensiPasaranAnswer.jsp";
                         dispatchErrorMsg( request, response, url, "" );
              catch (Exception e)
                        request.setAttribute("pd.errorMessage", e.getMessage());
                        dispatchErrorMsg( request, response, "/jsp/Error.jsp", e.getMessage() );
    //Reilly
         if (handler != null && !handler.equals( "" ) && handler.equals( "add" ))
                   try
                        System.out.println("The DIJ value is :"+dij);
                        System.out.println("The population_i value is :"+population_i);
                        System.out.println("The population_j value is :"+population_j);
                        answer = Double.parseDouble(dij)/(1 + Math.sqrt(( Double.parseDouble(population_i) / Double.parseDouble(population_j) )));
    System.out.println("The answer value is :"+answer);
                         url = "/jsp/model/reillyAnswer.jsp";
                         dispatchErrorMsg( request, response, url, "" );
              catch (Exception e)
                        request.setAttribute("pd.errorMessage", e.getMessage());
                        dispatchErrorMsg( request, response, "/jsp/Error.jsp", e.getMessage() );
         public void doGet (HttpServletRequest request, HttpServletResponse response)
         throws IOException, ServletException
              doPost(request, response);
         }//end doGet
         public void dispatchErrorMsg(HttpServletRequest req, HttpServletResponse res,
                                                           String target, String message)
              try
                   RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(target);
                   req.setAttribute("eshop.ErrMessage",message);
                   dispatcher.forward(req, res);
              catch (Exception e)
                   System.err.println( e.getMessage() );
    }//end class

  • How convert InputStream to byte[]?

    I need to put an InputStream into a byte array, but I can't figure out the best way to do it, since I do not know the size to make the byte[].
    Does anyone know a good way to do this?

    you have to define the byte array to be some size, I write out to a file.
    public class criFileClient extends Object {
    java.net.URL url = null;
    java.lang.String sPath = "c:/Program Files/Cost Report/Imaging/Cache/";
    public criFileClient(){
    public void doFileRequest(java.lang.String sRequest) throws java.lang.Exception{
    try{
    java.net.URL url = new java.net.URL("http://ratespro:8000/servlet/criFileServlet");
    java.lang.String sFile = null;
    byte[] b = new byte[1024];
    byte[] sb = null;
    int iRead = 0;
    java.net.URLConnection urlConn = url.openConnection();
    urlConn.setRequestProperty("Content-Type", "image/tiff");
    urlConn.setDoOutput(true);
    urlConn.setDoInput(true);
    urlConn.setAllowUserInteraction(false);
    java.io.OutputStream out = urlConn.getOutputStream();
    System.out.println(sRequest);
    out.write(sRequest.getBytes());
    out.flush();
    sFile = sPath.concat(sRequest.substring(sRequest.length() - 17));
    System.out.println("local Path = " + sFile);
    java.io.File f = new java.io.File(sFile);
    if(!f.exists()){
    System.out.println("criFileClient.doFileRequest(): " + f.getName());
    f.deleteOnExit();
    java.io.InputStream in = urlConn.getInputStream();
    java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
    iRead = in.read(b);
    while(iRead > 0){
    if(iRead == 1024) fos.write(b);
    else{
    sb = new byte[iRead];
    for(int i = 0; i < iRead; i++) sb[i] = b;
    fos.write(sb);
    iRead = in.read(b);
    fos.close();
    }catch(java.lang.Exception e){
    System.out.println("Error: " + e.toString());

  • Can't convert int into String

    I'm trying to code a GUI that will give an employee id, name, salary, hire date, and vac days.
    public String getFieldValue(int fieldIndex) {
              switch (fieldIndex){
              case 0: return employeeID;
              case 1: return firstName;
              case 2: return lastName;
              case 3: return empIndicator;
              case 4: return salary;
              case 5: return hireDate;
              case 6: return vacDate;
              return null;
    My salary and vacDate are double and int. How do I display all the fields?
    Thanks

    I would use enums here, not magic numbers.
    Are you trying to extract the text held in JTextFields? If so, perhaps returning String is all you need. This you can parse via the wrapper classes (i.e., Integer.parseInt(...) and Double.parseDouble(...))

  • LOB : how convert CLOB into BLOB

    This code doesn't work : ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error.
    declare
    vCLOB CLOB := empty_clob();
    vBLOB BLOB := empty_blob();
    begin
    dbms_lob.createTemporary(vCLOB,TRUE);
    dbms_lob.open(vCLOB, DBMS_LOB.LOB_READWRITE);
    -- Put data into CLOB
    l_length := dbms_lob.getlength(vCLOB);
    dbms_lob.read(vCLOB,l_length,1,buffer);
    dbms_lob.createTemporary(vBLOB,TRUE);
    dbms_lob.open(vBLOB, DBMS_LOB.LOB_READWRITE);
    dbms_lob.write(vBLOB,l_length,1,buffer);
    dbms_lob.close(vBLOB);
    dbms_lob.freeTemporary(vBLOB);
    dbms_lob.close(vCLOB);
    dbms_lob.freeTemporary(vCLOB);
    Thanks.

    You can use my procedure
    create or replace procedure CLOB2BLOB (p_clob in out nocopy clob, p_blob in out nocopy blob) is
    -- transforming CLOB &#226; BLOB
    l_off number default 1;
    l_amt number default 4096;
    l_offWrite number default 1;
    l_amtWrite number;
    l_str varchar2(4096 char);
    begin
    begin
    loop
    dbms_lob.read ( p_clob, l_amt, l_off, l_str );
    l_amtWrite := utl_raw.length ( utl_raw.cast_to_raw( l_str) );
    dbms_lob.write( p_blob, l_amtWrite, l_offWrite,
    utl_raw.cast_to_raw( l_str ) );
    l_offWrite := l_offWrite + l_amtWrite;
    l_off := l_off + l_amt;
    l_amt := 4096;
    end loop;
    exception
    when no_data_found then
    NULL;
    end;
    end;
    Best regards, Victor

  • Plesae help- needing to read a blob from db into bytes[]

    Hi all,
    I am having a requirement to read a blob stored in the oracle table and convert it into bytes. I am loading this table (wwv_flow_files) with APEX.
    The code under page 1 is as follows:
    DECLARE
    z number;
    y varchar2(4000);
    x varchar2(400);
    b blob;
    BEGIN
    select filename,blob_content into x ,b from APEX_APPLICATION_files where name =:P1_FILE_NAME;
    select length(convertBlobToBytes(b)) into z from dual;
    :P1_RESULT := z;
    end;
    Java code is as follows:
    import java.io.*;
    import java.sql.Blob;
    public class convertBlob {
    * @param blob
    * @return
    public static byte[] convertBlobToBytes(Blob blob) {
         if (blob==null) return null;
         try {
         InputStream in = blob.getBinaryStream();
         int len = (int) blob.length(); //read as long     
    long pos = 1; //indexing starts from 1
         byte[] bytes = blob.getBytes(pos, len);           
    in.close();
         return bytes;     
    catch (Exception e) {
         System.out.println(e.getMessage());
         return null;
    PL/SQL wrapper is as follows:
    CREATE OR REPLACE FUNCTION convertBlobToBytes(p1 IN BLOB) RETURN LONG RAW AUTHID CURRENT_USER AS LANGUAGE JAVA NAME 'convertBlob.convertBlobToBytes(java.sql.Blob) return byte[]';
    I loaded this java class and pl/sql wrapper into the database using JDEVELOPER.
    But I am getting the length of the file, as twice the size.
    For example, When I run the program which reads the file returns the length of the file as a byte array, the length is 819.
    When I pass the same file as a blob from apex, to the java program that converts blob to bytes, the length of the file is 1638.
    And hence I am getting wrong results, further in the process.
    Can you please help me? Any help is appreciated.
    rgds,
    Suma.

    Hi all,
    Can any of you please help me out?
    rgds,
    Suma.

  • CONVERT PDF INTO BYTESTREAM

    Hi all,
    I have a Requirement that from Backed the Smart form need to be Converted into PDF and den to Byte Stream which is sent to UI. I got to know how to convert Smartform into PDF but can you people help me in Converting PDF into Byte stream.
    Regard's
    Girija

    Hi Girija,
    This could eventually help you: [Steps to Publish Web Service in R/3, Consume Web Service in R/3 and Adobe Flex|http://www.****************/Tutorials/Others/WebService/Flex2.htm].
    Regards,
    Clemens

  • Converting int type into two bytes!

    Hi everyone,
    i need help in converting types.
    I have and int ranging from 0-4095 that i would like
    to write in a file as couple of bytes.
    For example suppose the int has four bytes
    [A][C][D]
    i would like to write in a file only the two bytes [C][D].
    How can i do?
    What does the byte casting do?
    int number = 1000;
    (byte)number = ??
    Thank you in advance
    -- Andy

    someting like this:
    int data;
    byte byte0=(byte)((data&0x000000ff)>>0);
    byte byte1=(byte)((data&0x0000ff00)>>8);
    byte byte2=(byte)((data&0x00ff0000)>>16);
    byte byte3=(byte)((data&0xff000000)>>24);

  • How to convert hex into a string value

    hei evryone!
    can anyone please help me on how to convert a hex value into a string suppose.. Example i want to convert 4275646479 which is a hex value, into a string "BUDDY"? how will i do that???
    Any suggestion, tutorial site would be appreciated?
    Thx!

    something like this will convert string to byte[]
    e.g.
    you want to convert following.
    656667 => ABC
    String toConvert = "656667";
    byte[] returnVal = String2byteArr (toConvert );
    String FinalStr = new String(returnVal);
    public static byte[] String2byteArr(String Result)
    byte[] byteRet = new byte[Result.length()/2];
    int k=0;
    for (int j=0; j<(Result.length()); j+=2)
    try
    Integer I = new Integer (0);
    I = I.decode ("0x"+Result.substring(j, j+2));
    int i = I.intValue ();
    if (i > 127)
    i = i - 256;
    byteRet[k++] = new Integer(i).byteValue();
    catch(Exception e)
    System.err.println(e);
    return byteRet;
    }// String2byteArr
    Hope this will help you, So that i can get 3$ (:-)
    Avi

  • How can i convert object to byte array very*100 fast?

    i need to transfer a object by datagram packet in embeded system.
    i make a code fallowing sequence.
    1) convert object to byte array ( i append object attribute to byte[] sequencailly )
    2) send the byte array by datagram packet ( by JNI )
    but, it's not satisfied my requirement.
    it must be finished in 1ms.
    but, converting is spending 2ms.
    network speed is not bottleneck. ( transfer time is 0.3ms and packet size is 4096 bytes )
    Using ObjectOutputStream is very slow, so i'm using this way.
    is there antoher way? or how can i improve?
    Edited by: JongpilKim on May 17, 2009 10:48 PM
    Edited by: JongpilKim on May 17, 2009 10:51 PM
    Edited by: JongpilKim on May 17, 2009 10:53 PM

    thanks a lot for your reply.
    now, i use udp socket for communication, but, i must use hardware pci communication later.
    so, i wrap the communication logic to use jni.
    for convert a object to byte array,
    i used ObjectInputStream before, but it was so slow.
    so, i change the implementation to use byte array directly, like ByteBuffer.
    ex)
    public class ByteArrayHelper {
    private byte[] buf = new byte[1024];
    int idx = 0;
    public void putInt(int val){
    buf[idx++] = (byte)(val & 0xff);
    buf[idx++] = (byte)((val>>8) & 0xff);
    buf[idx++] = (byte)((val>>16) & 0xff);
    buf[idx++] = (byte)((val>>24) & 0xff);
    public void putDouble(double val){ .... }
    public void putFloat(float val){ ... }
    public byte[] toByteArray(){ return this.buf; }
    public class PacketData {
    priavte int a;
    private int b;
    public byte[] getByteArray(){
    ByteArrayHelper helper = new ByteArrayHelper();
    helper.putInt(a);
    helper.putInt(b);
    return helper.toByteArray();
    but, it's not enough.
    is there another way to send a object data?
    in java language, i can't access memory directly.
    in c language, if i use struct, i can send struct data to copy memory by socket and it's very fast.
    Edited by: JongpilKim on May 18, 2009 5:26 PM

  • How to convert BLOB into a String

    Hi,
    I got a blob column from the database.
    It contains one XML File.
    How to convert it into String.
    I need the code for how to convert the blob into String
    Thanks in Advance.

    A blob would be a byte-array, which you can use in the String(byte[]) constructor

  • What is the best way to convert a cluster into byte array or string

    I'm writing a program that sends UDP packets and I've defined the data I want to send via large clusters (with u8/u16/u32 numbers, u8/u16/u32 arrays, and nested clusters). Right before sending the data, I need to convert the clusters either into strings or byte arrays. The flatten to string function is almost perfect for this purpose. However, it's appending lengths to arrays and strings which renders this method useless, as far as I can tell. 
    As I have many of these clusters, I would rather not hard code the unbundle by names and converting/typecasting to byte arrays or strings for each one. 
    Is there a feature or tool I am overlooking? 
    Thank you! 

    deceased wrote:
    Flatten to string has a boolean input of "Prepend string or array size" ... The default value is true.
    That only specifies if a string or array size should be prepended if the outermost data element is a string or array. For embedded strings or arrays it has no influence. This is needed for the Unflatten to be able to reconstruct the size of the embedded strings and arrays.
    The choice to represent the "Strings" (and Arrays) in the external protocol to LabVIEW strings (and arrays) is actually a pretty bad one unless there is some other element in the cluster that does define the length of the string. An external protocol always needs some means to determine how long the embedded string or array would be in order to decode the subsequent elements that follow correctly.
    Possible choices here are therefore:
    1) some explicit length in the protocol (usually prepended to the actual string or array)
    2) a terminating NULL character for strings, (not very friendly for reliable protocol parsing)
    3) A fixed size array or string
    For number 1) and 2) you would always need to do some special processing unless the protocol happens to use explicitedly 32 bit integer length indicators directly prepended before the variable sized that.
    For number 3) the best representation in LabVIEW is actually a cluster with as many elements inside as the fixed size.
     

  • How to convert .class into .jar file

    Hi,
    How to convert .class into .jar file

    jsf_VWP5.5.1 wrote:
    Hi,
    How to convert .class into .jar fileFrom a command prompt, cd to the location of your .class file(s).
    If you want to create a simple jar, use: jar -cf Whatever.jar Whatever.class
    If you want to compile all .class files in a directory into a jar, use *.class instead.
    Now, I'm going to assume you want to create an executable jar... here's how to do that:
    1) Create a blank text file; for this example, lets call it main.txt.
    2) In the first line of main.txt, type: Main-class: Whatever ('Whatever' should be the name of the class in your program where the main() method is located)
    3) Press enter to go to the next line (someone please correct me if I'm wrong, but if you don't insert the line break/CR after the Main-class: statement, this will not work... in my experience, this is true)
    4) Make sure you save this file in the same directory as your .class file(s).
    5) Type: jar -cmf Whatever.jar main.txt Whatever.class
    ...and that's about it. For more information on the usage of the jar command and to understand the switches (such as -cmf), try jar --help.
    Hope that helps.

Maybe you are looking for