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

📄 littleendianinputstream.java

📁 gcc的组建
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   * implementing the <code>writeInt()</code> method in the   * <code>DataOutput</code> interface.   *   * @return The <code>int</code> value read   *   * @exception EOFException If end of file is reached before reading the int   * @exception IOException If any other error occurs   *   * @see DataOutput#writeInt   */  public int readInt()              throws IOException  {    readFully(buf, 0, 4);    return convertToInt(buf);  }  /**   * This method reads the next line of text data from an input   * stream.  It operates by reading bytes and converting those bytes   * to <code>char</code> values by treating the byte read as the low   * eight bits of the <code>char</code> and using 0 as the high eight   * bits.  Because of this, it does not support the full 16-bit   * Unicode character set.   * <p>   * The reading of bytes ends when either the end of file or a line   * terminator is encountered.  The bytes read are then returned as a   * <code>String</code> A line terminator is a byte sequence   * consisting of either <code>\r</code>, <code>\n</code> or   * <code>\r\n</code>.  These termination charaters are discarded and   * are not returned as part of the string.   * <p>   * This method can read data that was written by an object implementing the   * <code>writeLine()</code> method in <code>DataOutput</code>.   *   * @return The line read as a <code>String</code>   *   * @exception IOException If an error occurs   *   * @see DataOutput   *   * @deprecated   */  public String readLine()                  throws IOException  {    StringBuffer strb = new StringBuffer();    while (true)      {        int c = in.read();        if (c == -1) // got an EOF          return strb.length() > 0 ? strb.toString() : null;        if (c == '\r')          {            int next_c = in.read();            if (next_c != '\n' && next_c != -1)              {                if (!(in instanceof PushbackInputStream))                  in = new PushbackInputStream(in);                ((PushbackInputStream) in).unread(next_c);              }            break;          }        if (c == '\n')          break;        strb.append((char) c);      }    return strb.length() > 0 ? strb.toString() : "";  }  /**   * This method reads a Java <code>long</code> value from an input stream   * It operates by reading eight bytes from the stream and converting them to   * a single Java <code>long</code>.  The bytes are stored most   * significant byte first (i.e., "big endian") regardless of the native   * host byte ordering.   * <p>   * As an example, if <code>byte1</code> through <code>byte8</code> represent   * the first eight bytes read from the stream, they will be   * transformed to an <code>long</code> in the following manner:   * <p>   * <code>(long)(((byte1 &amp; 0xFF) &lt;&lt; 56) + ((byte2 &amp; 0xFF) &lt;&lt; 48) +   * ((byte3 &amp; 0xFF) &lt;&lt; 40) + ((byte4 &amp; 0xFF) &lt;&lt; 32) +   * ((byte5 &amp; 0xFF) &lt;&lt; 24) + ((byte6 &amp; 0xFF) &lt;&lt; 16) +   * ((byte7 &amp; 0xFF) &lt;&lt; 8) + (byte8 &amp; 0xFF)))   * </code>   * <p>   * The value returned is in the range of -9223372036854775808 to   * 9223372036854775807.   * <p>   * This method can read an <code>long</code> written by an object   * implementing the <code>writeLong()</code> method in the   * <code>DataOutput</code> interface.   *   * @return The <code>long</code> value read   *   * @exception EOFException If end of file is reached before reading the long   * @exception IOException If any other error occurs   *   * @see DataOutput#writeLong   */  public long readLong()                throws IOException  {    readFully(buf, 0, 8);    return convertToLong(buf);  }  /**   * This method reads a signed 16-bit value into a Java in from the   * stream.  It operates by reading two bytes from the stream and   * converting them to a single 16-bit Java <code>short</code>.  The   * two bytes are stored most significant byte first (i.e., "big   * endian") regardless of the native host byte ordering.   * <p>   * As an example, if <code>byte1</code> and <code>byte2</code>   * represent the first and second byte read from the stream   * respectively, they will be transformed to a <code>short</code>. in   * the following manner:   * <p>   * <code>(short)(((byte1 &amp; 0xFF) &lt;&lt; 8) | (byte2 &amp; 0xFF))</code>   * <p>   * The value returned is in the range of -32768 to 32767.   * <p>   * This method can read a <code>short</code> written by an object   * implementing the <code>writeShort()</code> method in the   * <code>DataOutput</code> interface.   *   * @return The <code>short</code> value read   *   * @exception EOFException If end of file is reached before reading the value   * @exception IOException If any other error occurs   *   * @see DataOutput#writeShort   */  public short readShort()                  throws IOException  {    readFully(buf, 0, 2);    return convertToShort(buf);  }  /**   * This method reads 8 unsigned bits into a Java <code>int</code>   * value from the stream. The value returned is in the range of 0 to   * 255.   * <p>   * This method can read an unsigned byte written by an object   * implementing the <code>writeUnsignedByte()</code> method in the   * <code>DataOutput</code> interface.   *   * @return The unsigned bytes value read as a Java <code>int</code>.   *   * @exception EOFException If end of file is reached before reading the value   * @exception IOException If any other error occurs   *   * @see DataOutput#writeByte   */  public int readUnsignedByte()                       throws IOException  {    return convertToUnsignedByte(in.read());  }  /**   * This method reads 16 unsigned bits into a Java int value from the stream.   * It operates by reading two bytes from the stream and converting them to   * a single Java <code>int</code>  The two bytes are stored most   * significant byte first (i.e., "big endian") regardless of the native   * host byte ordering.   * <p>   * As an example, if <code>byte1</code> and <code>byte2</code>   * represent the first and second byte read from the stream   * respectively, they will be transformed to an <code>int</code> in   * the following manner:   * <p>   * <code>(int)(((byte1 &amp; 0xFF) &lt;&lt; 8) + (byte2 &amp; 0xFF))</code>   * <p>   * The value returned is in the range of 0 to 65535.   * <p>   * This method can read an unsigned short written by an object   * implementing the <code>writeUnsignedShort()</code> method in the   * <code>DataOutput</code> interface.   *   * @return The unsigned short value read as a Java <code>int</code>   *   * @exception EOFException If end of file is reached before reading the value   * @exception IOException If any other error occurs   *   * @see DataOutput#writeShort   */  public int readUnsignedShort()                        throws IOException  {    readFully(buf, 0, 2);    return convertToUnsignedShort(buf);  }  /**   * This method attempts to skip and discard the specified number of bytes   * in the input stream.  It may actually skip fewer bytes than requested.   * This method will not skip any bytes if passed a negative number of bytes   * to skip.   *   * @param n The requested number of bytes to skip.   *   * @return The requested number of bytes to skip.   *   * @exception IOException If an error occurs.   * @specnote The JDK docs claim that this returns the number of bytes   *  actually skipped. The JCL claims that this method can throw an   *  EOFException. Neither of these appear to be true in the JDK 1.3's   *  implementation. This tries to implement the actual JDK behaviour.   */  public int skipBytes(int n)                throws IOException  {    if (n <= 0)      return 0;    try      {        return (int) in.skip(n);      }    catch (EOFException x)      {        // do nothing.      }    return n;  }  protected boolean convertToBoolean(int b)                              throws EOFException  {    if (b < 0)      throw new EOFException();    return (b != 0);  }  protected byte convertToByte(int i)                        throws EOFException  {    if (i < 0)      throw new EOFException();    return (byte) i;  }  protected int convertToUnsignedByte(int i)                               throws EOFException  {    if (i < 0)      throw new EOFException();    return (i & 0xFF);  }  /**   * Less significant byte first.   */  protected char convertToChar(byte[] buf)  {    return (char) ((buf [ 1 ] << 8) | (buf [ 0 ] & 0xff));  }  /**   * Less significant byte first.   */  protected short convertToShort(byte[] buf)  {    return (short) ((buf [ 1 ] << 8) | (buf [ 0 ] & 0xff));  }  /**   * Less significant byte first.   */  protected int convertToUnsignedShort(byte[] buf)  {    return (((buf [ 1 ] & 0xff) << 8) | (buf [ 0 ] & 0xff));  }  /**   * Less significant byte first.   */  protected int convertToInt(byte[] buf)  {    return (((buf [ 3 ] & 0xff) << 24) | ((buf [ 2 ] & 0xff) << 16) |           ((buf [ 1 ] & 0xff) << 8) | (buf [ 0 ] & 0xff));  }  /**   * Less significant byte first.   */  protected long convertToLong(byte[] buf)  {    return (((long) (buf [ 7 ] & 0xff) << 56) |           ((long) (buf [ 6 ] & 0xff) << 48) |           ((long) (buf [ 5 ] & 0xff) << 40) |           ((long) (buf [ 4 ] & 0xff) << 32) |           ((long) (buf [ 3 ] & 0xff) << 24) |           ((long) (buf [ 2 ] & 0xff) << 16) |           ((long) (buf [ 1 ] & 0xff) << 8) | ((long) (buf [ 0 ] & 0xff)));  }  /**   * This should never be called.   *   * @throws InternalError, always.   */  public String readUTF()  {    throw new InternalError();  }}

⌨️ 快捷键说明

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