当前位置: 首页>>代码示例>>Java>>正文


Java IOUtils.readFully方法代码示例

本文整理汇总了Java中org.h2.util.IOUtils.readFully方法的典型用法代码示例。如果您正苦于以下问题:Java IOUtils.readFully方法的具体用法?Java IOUtils.readFully怎么用?Java IOUtils.readFully使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.h2.util.IOUtils的用法示例。


在下文中一共展示了IOUtils.readFully方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createFromReader

import org.h2.util.IOUtils; //导入方法依赖的package包/类
private void createFromReader(char[] buff, int len, Reader in,
        long remaining, DataHandler h) throws IOException {
    FileStoreOutputStream out = initLarge(h);
    boolean compress = h.getLobCompressionAlgorithm(Value.CLOB) != null;
    try {
        while (true) {
            precision += len;
            byte[] b = new String(buff, 0, len).getBytes(Constants.UTF8);
            out.write(b, 0, b.length);
            remaining -= len;
            if (remaining <= 0) {
                break;
            }
            len = getBufferSize(h, compress, remaining);
            len = IOUtils.readFully(in, buff, len);
            if (len == 0) {
                break;
            }
        }
    } finally {
        out.close();
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:24,代码来源:ValueLob.java

示例2: createFromStream

import org.h2.util.IOUtils; //导入方法依赖的package包/类
private void createFromStream(byte[] buff, int len, InputStream in,
        long remaining, DataHandler h) throws IOException {
    FileStoreOutputStream out = initLarge(h);
    boolean compress = h.getLobCompressionAlgorithm(Value.BLOB) != null;
    try {
        while (true) {
            precision += len;
            out.write(buff, 0, len);
            remaining -= len;
            if (remaining <= 0) {
                break;
            }
            len = getBufferSize(h, compress, remaining);
            len = IOUtils.readFully(in, buff, len);
            if (len <= 0) {
                break;
            }
        }
    } finally {
        out.close();
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:23,代码来源:ValueLob.java

示例3: createClob

import org.h2.util.IOUtils; //导入方法依赖的package包/类
/**
 * Create a CLOB value from a stream.
 *
 * @param in the reader
 * @param length the number of characters to read, or -1 for no limit
 * @param handler the data handler
 * @return the lob value
 */
private static ValueLob createClob(Reader in, long length,
        DataHandler handler) {
    try {
        if (handler == null) {
            String s = IOUtils.readStringAndClose(in, (int) length);
            return createSmallLob(Value.CLOB, s.getBytes(Constants.UTF8));
        }
        boolean compress = handler.getLobCompressionAlgorithm(Value.CLOB) != null;
        long remaining = Long.MAX_VALUE;
        if (length >= 0 && length < remaining) {
            remaining = length;
        }
        int len = getBufferSize(handler, compress, remaining);
        char[] buff;
        if (len >= Integer.MAX_VALUE) {
            String data = IOUtils.readStringAndClose(in, -1);
            buff = data.toCharArray();
            len = buff.length;
        } else {
            buff = new char[len];
            len = IOUtils.readFully(in, buff, len);
        }
        if (len <= handler.getMaxLengthInplaceLob()) {
            byte[] small = new String(buff, 0, len).getBytes(Constants.UTF8);
            return ValueLob.createSmallLob(Value.CLOB, small);
        }
        ValueLob lob = new ValueLob(Value.CLOB, null);
        lob.createFromReader(buff, len, in, remaining, handler);
        return lob;
    } catch (IOException e) {
        throw DbException.convertIOException(e, null);
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:42,代码来源:ValueLob.java

示例4: createBlob

import org.h2.util.IOUtils; //导入方法依赖的package包/类
/**
 * Create a BLOB value from a stream.
 *
 * @param in the input stream
 * @param length the number of characters to read, or -1 for no limit
 * @param handler the data handler
 * @return the lob value
 */
private static ValueLob createBlob(InputStream in, long length,
        DataHandler handler) {
    try {
        if (handler == null) {
            byte[] data = IOUtils.readBytesAndClose(in, (int) length);
            return createSmallLob(Value.BLOB, data);
        }
        long remaining = Long.MAX_VALUE;
        boolean compress = handler.getLobCompressionAlgorithm(Value.BLOB) != null;
        if (length >= 0 && length < remaining) {
            remaining = length;
        }
        int len = getBufferSize(handler, compress, remaining);
        byte[] buff;
        if (len >= Integer.MAX_VALUE) {
            buff = IOUtils.readBytesAndClose(in, -1);
            len = buff.length;
        } else {
            buff = DataUtils.newBytes(len);
            len = IOUtils.readFully(in, buff, len);
        }
        if (len <= handler.getMaxLengthInplaceLob()) {
            byte[] small = DataUtils.newBytes(len);
            System.arraycopy(buff, 0, small, 0, len);
            return ValueLob.createSmallLob(Value.BLOB, small);
        }
        ValueLob lob = new ValueLob(Value.BLOB, null);
        lob.createFromStream(buff, len, in, remaining, handler);
        return lob;
    } catch (IOException e) {
        throw DbException.convertIOException(e, null);
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:42,代码来源:ValueLob.java

示例5: ValueLobDb

import org.h2.util.IOUtils; //导入方法依赖的package包/类
/**
 * Create a CLOB in a temporary file.
 */
private ValueLobDb(DataHandler handler, Reader in, long remaining)
        throws IOException {
    this.type = Value.CLOB;
    this.handler = handler;
    this.small = null;
    this.lobId = 0;
    this.hmac = null;
    this.fileName = createTempLobFileName(handler);
    this.tempFile = this.handler.openFile(fileName, "rw", false);
    this.tempFile.autoDelete();
    FileStoreOutputStream out = new FileStoreOutputStream(tempFile, null, null);
    long tmpPrecision = 0;
    try {
        char[] buff = new char[Constants.IO_BUFFER_SIZE];
        while (true) {
            int len = getBufferSize(this.handler, false, remaining);
            len = IOUtils.readFully(in, buff, len);
            if (len == 0) {
                break;
            }
        }
    } finally {
        out.close();
    }
    this.precision = tmpPrecision;
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:30,代码来源:ValueLobDb.java

示例6: createTempClob

import org.h2.util.IOUtils; //导入方法依赖的package包/类
/**
 * Create a temporary CLOB value from a stream.
 *
 * @param in the reader
 * @param length the number of characters to read, or -1 for no limit
 * @param handler the data handler
 * @return the lob value
 */
public static ValueLobDb createTempClob(Reader in, long length,
        DataHandler handler) {
    BufferedReader reader;
    if (in instanceof BufferedReader) {
        reader = (BufferedReader) in;
    } else {
        reader = new BufferedReader(in, Constants.IO_BUFFER_SIZE);
    }
    try {
        boolean compress = handler.getLobCompressionAlgorithm(Value.CLOB) != null;
        long remaining = Long.MAX_VALUE;
        if (length >= 0 && length < remaining) {
            remaining = length;
        }
        int len = getBufferSize(handler, compress, remaining);
        char[] buff;
        if (len >= Integer.MAX_VALUE) {
            String data = IOUtils.readStringAndClose(reader, -1);
            buff = data.toCharArray();
            len = buff.length;
        } else {
            buff = new char[len];
            reader.mark(len);
            len = IOUtils.readFully(reader, buff, len);
        }
        if (len <= handler.getMaxLengthInplaceLob()) {
            byte[] small = new String(buff, 0, len).getBytes(Constants.UTF8);
            return ValueLobDb.createSmallLob(Value.CLOB, small, len);
        }
        reader.reset();
        ValueLobDb lob = new ValueLobDb(handler, reader, remaining);
        return lob;
    } catch (IOException e) {
        throw DbException.convertIOException(e, null);
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:45,代码来源:ValueLobDb.java

示例7: createTempBlob

import org.h2.util.IOUtils; //导入方法依赖的package包/类
/**
 * Create a temporary BLOB value from a stream.
 *
 * @param in the input stream
 * @param length the number of characters to read, or -1 for no limit
 * @param handler the data handler
 * @return the lob value
 */
public static ValueLobDb createTempBlob(InputStream in, long length,
        DataHandler handler) {
    try {
        long remaining = Long.MAX_VALUE;
        boolean compress = handler.getLobCompressionAlgorithm(Value.BLOB) != null;
        if (length >= 0 && length < remaining) {
            remaining = length;
        }
        int len = getBufferSize(handler, compress, remaining);
        byte[] buff;
        if (len >= Integer.MAX_VALUE) {
            buff = IOUtils.readBytesAndClose(in, -1);
            len = buff.length;
        } else {
            buff = DataUtils.newBytes(len);
            len = IOUtils.readFully(in, buff, len);
        }
        if (len <= handler.getMaxLengthInplaceLob()) {
            byte[] small = DataUtils.newBytes(len);
            System.arraycopy(buff, 0, small, 0, len);
            return ValueLobDb.createSmallLob(Value.BLOB, small, small.length);
        }
        ValueLobDb lob = new ValueLobDb(handler, buff, len, in, remaining);
        return lob;
    } catch (IOException e) {
        throw DbException.convertIOException(e, null);
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:37,代码来源:ValueLobDb.java

示例8: dumpLobMaps

import org.h2.util.IOUtils; //导入方法依赖的package包/类
private void dumpLobMaps(PrintWriter writer, MVStore mv) {
    lobMaps = mv.hasMap("lobData");
    if (!lobMaps) {
        return;
    }
    MVMap<Long, byte[]> lobData = mv.openMap("lobData");
    StreamStore streamStore = new StreamStore(lobData);
    MVMap<Long, Object[]> lobMap = mv.openMap("lobMap");
    writer.println("-- LOB");
    writer.println("CREATE TABLE IF NOT EXISTS " +
            "INFORMATION_SCHEMA.LOB_BLOCKS(" +
            "LOB_ID BIGINT, SEQ INT, DATA BINARY, " +
            "PRIMARY KEY(LOB_ID, SEQ));");
    for (Entry<Long, Object[]> e : lobMap.entrySet()) {
        long lobId = e.getKey();
        Object[] value = e.getValue();
        byte[] streamStoreId = (byte[]) value[0];
        InputStream in = streamStore.get(streamStoreId);
        int len = 8 * 1024;
        byte[] block = new byte[len];
        try {
            for (int seq = 0;; seq++) {
                int l = IOUtils.readFully(in, block, block.length);
                String x = StringUtils.convertBytesToHex(block, l);
                if (l > 0) {
                    writer.println("INSERT INTO INFORMATION_SCHEMA.LOB_BLOCKS " +
                            "VALUES(" + lobId + ", " + seq + ", '" + x + "');");
                }
                if (l != len) {
                    break;
                }
            }
        } catch (IOException ex) {
            writeError(writer, ex);
        }
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:38,代码来源:Recover.java

示例9: readFully

import org.h2.util.IOUtils; //导入方法依赖的package包/类
/**
 * Read a number of bytes.
 *
 * @param buff the target buffer
 * @param len the number of bytes to read
 */
public void readFully(byte[] buff, int len) throws IOException {
    int got = IOUtils.readFully(in, buff, len);
    if (got < len) {
        throw new FastEOFException();
    }
}
 
开发者ID:vdr007,项目名称:ThriftyPaxos,代码行数:13,代码来源:DataReader.java


注:本文中的org.h2.util.IOUtils.readFully方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。