Here you can find the source of byteBufferToInputStream(final ByteBuffer byteBuffer)
Parameter | Description |
---|---|
byteBuffer | The ByteBuffer . |
public static InputStream byteBufferToInputStream(final ByteBuffer byteBuffer)
//package com.java2s; /*// w ww .j av a2s . c om * This file is part of ClassGraph. * * Author: Luke Hutchison * * Hosted at: https://github.com/lukehutch/fast-classpath-scanner * * -- * * The MIT License (MIT) * * Copyright (c) 2018 Luke Hutchison * * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated * documentation files (the "Software"), to deal in the Software without restriction, including without * limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO * EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE * OR OTHER DEALINGS IN THE SOFTWARE. */ import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; public class Main { /** * Produce an {@link InputStream} that is able to read from a {@link ByteBuffer}. * * @param byteBuffer * The {@link ByteBuffer}. * @return An {@link InputStream} that reads from the {@ByteBuffer}. */ public static InputStream byteBufferToInputStream(final ByteBuffer byteBuffer) { // https://stackoverflow.com/questions/4332264/wrapping-a-bytebuffer-with-an-inputstream/6603018#6603018 return new InputStream() { final ByteBuffer buf = byteBuffer; @Override public int read() throws IOException { if (!buf.hasRemaining()) { return -1; } return buf.get() & 0xFF; } @Override public int read(final byte[] bytes, final int off, final int len) throws IOException { if (!buf.hasRemaining()) { return -1; } final int bytesRead = Math.min(len, buf.remaining()); buf.get(bytes, off, bytesRead); return bytesRead; } }; } }