Convert binary data into java or c++ sourcecode for easy integration in your project, with the free sfk bin-to-src command for Windows, Mac OS X and Linux.

sfk bin-to-src [...] infile outfile namePrefix

create sourcefile containing a binary data block. the outfile
will contain variable definitions beginning with namePrefix.

options
   -java       create java source code output, default is C.
   -class      java: create a fully compilable class with a short
               demo source code how to write the data to a file.
   -pack       C source: compress data with a simple RLE scheme.
   -hex        C source: produce hex numbers instead of decimal.
   -append     do not overwrite output, but append to it.
   -recsize=n  java: define number of bytes per record used
               within the raw data. default is 500. higher values
               produce less records, which may help if you get
               a "code too large" error during java compile.

further commands
   sfk clipsrc   convert clipboard text to C    style source code
   sfk clipphp   convert clipboard text to PHP  style source code
   sfk clipjava  convert clipboard text to Java style source code
   ... add +toclip to copy converted result back to clipboard.

web reference
   http://stahlworks.com/sfk-bintosrc

examples
   sfk bin-to-src myimg.dat imgsrc.cpp img01
      create C source code containing content from myimg.dat.

   sfk bin-to-src -java -class myimg.dat imgdata.java imgdata
      create a Java class "imgdata" with myimg.dat content.
C++ example output: (reduced at "...")

   #define pic01_BLOCK_SIZE 1105
   
   static unsigned char pic01_abRawBlock[1105] = {
   255,216,255,224,0,16,74,70,73,70,0,1,1,1,0,96,0,96,0,0,
   255,219,0,67,0,4,3,3,4,3,3,4,4,4,4,5,5,4,5,7,11,7,7,6,6,
   7,14,10,10,8,11,16,14,17,17,16,14,16,15,18,20,26,22,18,
   ...
   15,84,235,10,161,46,224,39,191,140,210,163,56,135,203,
   255,217,
   };

Java example output: (reduced at "...")

   public static int pic01_BlockSize = 1105;
   static String pic01_RawBlock[] = {
   "\uffd8\uffe0\u0010\u4a46\u4946\u0001\u0101 ...",
   "\u3f02\ue4a9\ud54a\u2a65\u84b4\u8dde\ud7d4 ...",
   "\u581b\u06e2\ua9f2\u64e7\u56ac\u840d\u8419 ...",
   };

   public static byte[] pic01_getBlock() {
      int iout=0, nblen=pic01_BlockSize;
      char atmp[] = new char[500];
      byte aout[] = new byte[nblen];
      for (int i=0; i> 8);
            byte blo = (byte)(c >> 0);
            aout[iout++] = bhi;
            if (iout < nblen)
               aout[iout++] = blo;
         }
      }
      return aout;
   }