Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* 
   * Licensed to the Apache Software Foundation (ASF) under one
   * or more contributor license agreements.  See the NOTICE file
   * distributed with this work for additional information
   * regarding copyright ownership.  The ASF licenses this file
   * to you under the Apache License, Version 2.0 (the
   * "License"); you may not use this file except in compliance
   * with the License.  You may obtain a copy of the License at
   *
  *   http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.felix.gogo.command;
 
 
 public class Base64Encoder
 {
     private static final byte encTab[] = { 0x41, 0x42, 0x43, 0x44, 0x45, 0x46,
         0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52,
         0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63, 0x64,
         0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
         0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x30, 0x31,
         0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2b, 0x2f };
 
     public static String base64Encode(String sthrows IOException
     {
         return encode(s.getBytes(), 0);
     }

    
Encode a raw byte array to a Base64 String.

Parameters:
in Byte array to encode.
len Length of Base64 lines. 0 means no line breaks.
 
     public static String encode(byte[] inint lenthrows IOException
     {
         ByteArrayOutputStream baos = null;
         ByteArrayInputStream bais = null;
         try
         {
             baos = new ByteArrayOutputStream();
             bais = new ByteArrayInputStream(in);
             encode(baisbaoslen);
             // ASCII byte array to String
             return (new String(baos.toByteArray()));
         }
         finally
         {
             if (baos != null)
             {
                 baos.close();
             }
             if (bais != null)
             {
                 bais.close();
             }
         }
     }
 
     public static void encode(InputStream inOutputStream outint len)
         throws IOException
     {
 
         // Check that length is a multiple of 4 bytes
         if (len % 4 != 0)
         {
             throw new IllegalArgumentException("Length must be a multiple of 4");
         }
 
         // Read input stream until end of file
         int bits = 0;
         int nbits = 0;
         int nbytes = 0;
         int b;
 
         while ((b = in.read()) != -1)
         {
             bits = (bits << 8) | b;
             nbits += 8;
             while (nbits >= 6)
             {
                 nbits -= 6;
                 out.write([0x3f & (bits >> nbits)]);
                 nbytes++;
                 // New line
                 if (len != 0 && nbytes >= len)
                 {
                    out.write(0x0d);
                    out.write(0x0a);
                    nbytes -= len;
                }
            }
        }
        switch (nbits)
        {
            case 2:
                out.write([0x3f & (bits << 4)]);
                out.write(0x3d); // 0x3d = '='
                out.write(0x3d);
                break;
            case 4:
                out.write([0x3f & (bits << 2)]);
                out.write(0x3d);
                break;
        }
        if (len != 0)
        {
            if (nbytes != 0)
            {
                out.write(0x0d);
                out.write(0x0a);
            }
            out.write(0x0d);
            out.write(0x0a);
        }
    }
New to GrepCode? Check out our FAQ X