Here you can find the source of getString(ByteBuffer in, int maxLength)
Parameter | Description |
---|---|
in | The input buffer. |
maxLength | The maximum number of bytes to read, or 0 if not limited. |
Parameter | Description |
---|---|
BufferOverflowException | If the string length is greaterthan <i>maxLength</i>. |
BufferUnderflowException | If there are not enoughbytes available in the buffer. |
public static String getString(ByteBuffer in, int maxLength)
//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; } }