Java ByteBuffer to String getString(ByteBuffer in, int maxLength)

Here you can find the source of getString(ByteBuffer in, int maxLength)

Description

Read a string from the buffer.

License

Open Source License

Parameter

Parameter Description
in The input buffer.
maxLength The maximum number of bytes to read, or 0 if not limited.

Exception

Parameter Description
BufferOverflowException If the string length is greaterthan <i>maxLength</i>.
BufferUnderflowException If there are not enoughbytes available in the buffer.

Return

The string.

Declaration

public static String getString(ByteBuffer in, int maxLength) 

Method Source Code


//package com.java2s;
/* vim:set softtabstop=3 shiftwidth=3 tabstop=3 expandtab tw=72:
$Id: BufferUtil.java,v 1.2 2003/04/05 15:25:37 rsdio Exp $
    /*from   ww w . j a v  a2  s  .  co m*/
BufferUtil: static methods for reading from a ByteBuffer.
Copyright (C) 2003  Casey Marshall <rsdio@metastatic.org>
    
This file is a part of Jarsync.
    
Jarsync is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
    
Jarsync is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.
    
You should have received a copy of the GNU General Public License
along with Jarsync; if not, write to the
    
   Free Software Foundation, Inc.,
   59 Temple Place, Suite 330,
   Boston, MA  02111-1307
   USA  */

import java.nio.BufferOverflowException;
import java.nio.BufferUnderflowException;
import java.nio.ByteBuffer;

public class Main {
    /**
     * Read a string from the buffer.
     *
     * @param in        The input buffer.
     * @param maxLength The maximum number of bytes to read, or 0 if not
     *    limited.
     * @return The string.
     * @throws BufferOverflowException If the string length is greater
     *   than <i>maxLength</i>.
     * @throws BufferUnderflowException If there are not enough
     *   bytes available in the buffer.
     */
    public static String getString(ByteBuffer in, int maxLength) {
        int l = in.getInt();
        if (maxLength > 0 && l > maxLength)
            throw new BufferOverflowException();
        byte[] b = new byte[l];
        try {
            in.get(b);
            return new String(b, "ISO-8859-1");
        } catch (BufferUnderflowException bue) {
            in.position(in.position() - 4);
            throw bue;
        } catch (java.io.UnsupportedEncodingException shouldNotHappen) {
        }
        return null;
    }
}

Related

  1. getString(ByteBuffer buffer, int offset, int length, String encoding)
  2. getString(ByteBuffer buffer, int size)
  3. getString(ByteBuffer buffer, int size)
  4. getString(ByteBuffer buffer, String charFormat)
  5. getString(ByteBuffer byteBuffer, int size)
  6. getString(final ByteBuffer buffer)
  7. getString(final ByteBuffer buffer, final int offset, final int length, final Charset encoding)
  8. getString(java.nio.ByteBuffer buffer, int offset, int len)
  9. getStringA(ByteBuffer byteBuffer, int length)