⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpletextinputstream.java

📁 codebook!
💻 JAVA
字号:
//----------------------------------------------------------------------------//// Module:      SimpleTextInputStream.java//// Description: InputStream wrapper for CommonValue objects//// Author:      Karl Moss//// Copyright:   (C) 1996,1997 Karl Moss.  All rights reserved.//              You may study, use, modify and distribute this example//              for any purpose, provided that this copyright notice//              appears in all copies.  This example is provided WITHOUT//              WARRANTY either expressed or implied.//----------------------------------------------------------------------------package jdbc.SimpleText;import java.sql.*;import java.io.*;public class SimpleTextInputStream    extends        InputStream{    //--------------------------------------------------------------------    // Constructor    // Perform any necessary initialization    //--------------------------------------------------------------------    public SimpleTextInputStream(        CommonValue value,        int type,        int length)    {        this.value = value;        this.type = type;        this.length = length;    }    //--------------------------------------------------------------------    // read    // Read a single byte of data.  Returns the byte read, or -1 when the    // end of the stream is reached    //--------------------------------------------------------------------    public int read()        throws IOException    {        int  singleByte;        byte buffer[];        // Allocate a single byte buffer        buffer = new byte[1];        // Read a single byte of data        singleByte = read(buffer);        // If not end of data, return the byte read        if (singleByte != -1) {            singleByte = buffer[0];        }        return singleByte;    }    //--------------------------------------------------------------------    // read    // Reads data into an array of bytes.  Returns the number of bytes    // read, or -1 when end of data is reached    //--------------------------------------------------------------------    public synchronized int read(        byte b[])        throws IOException    {        int toRead = b.length;        // If the value given is null, return end of data        if (value == null) {            return -1;        }        if (value.isNull()) {            return -1;        }        // Calculate the number of bytes to return        int copyBytes = length - currentOffset;        // Is there more data to get?        if (copyBytes <= 0) {            return -1;        }        // Only copy up to the size of the given buffer        if (copyBytes > toRead) {            copyBytes = toRead;        }        // Get the data as a byte array        byte data[];        try {            data = value.getBytes();        }        catch (SQLException ex) {            return -1;        }        // Copy the data.  The type of InputStream should be checked.        // We'll assume binary data for the SimpleText driver        System.arraycopy(data, currentOffset, b, 0, copyBytes);        // Increment our offset        currentOffset += copyBytes;        // Return the number of bytes copied        return copyBytes;    }    //--------------------------------------------------------------------    // available    // Returns the number of bytes that can be read without blocking.    //--------------------------------------------------------------------    public int available()        throws IOException    {        int bytes = 0;        if (length > 0) {            bytes = length - currentOffset;        }        return bytes;    }    // CommonValue object containing the data    protected CommonValue value;    // InputStream type    protected int type;        public final static int STREAM_TYPE_ASCII    = 1;        public final static int STREAM_TYPE_UNICODE    = 2;        public final static int STREAM_TYPE_BINARY    = 3;    // Total length of data, or -1 if not known    protected int length;    // Current offset in the value    protected int currentOffset;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -