模块 java.base
 java.io

类 LineNumberInputStream

所有已实现的接口:
Closeable , AutoCloseable

@Deprecated public class LineNumberInputStream extends FilterInputStream
已弃用。
此类错误地假定字节足以表示字符。从 JDK 1.1 开始,对字符流进行操作的首选方法是通过新的字符流类,其中包括一个用于计算行号的类。
此类是一个输入流过滤器,它提供了跟踪当前行号的附加功能。

一行是以回车符 ('\r')、换行符 ('\n') 或紧跟换行符的回车符结尾的字节序列。在所有这三种情况下,行终止字符都作为单个换行符返回。

行号从 0 开始,并在 read 返回换行符时递增 1

自从:
1.0
参见:
  • 构造方法详细信息

    • LineNumberInputStream

      public LineNumberInputStream(InputStream  in)
      已弃用。
      构造一个换行号输入流,它从指定的输入流中读取其输入。
      参数:
      in - 底层输入流。
  • 方法详情

    • read

      public int read() throws IOException
      已弃用。
      从此输入流中读取下一个字节的数据。值字节作为 int0255 范围内返回。如果因为已到达流的末尾而没有可用字节,则返回值 -1。此方法会阻塞,直到输入数据可用、检测到流结束或抛出异常为止。

      LineNumberInputStreamread方法调用底层输入流的read方法。它检查输入中的回车符和换行符,并根据需要修改当前行号。回车符或回车后跟换行符都被转换为单个换行符。

      重写:
      read 在类 FilterInputStream
      返回:
      下一个数据字节,如果到达此流的末尾,则为 -1
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • read

      public int read(byte[] b, int off, int len) throws IOException
      已弃用。
      从此输入流中读取最多 len 字节的数据到字节数组中。在某些输入可用之前,此方法会阻塞。

      LineNumberInputStreamread方法重复调用零参数的read方法来填充字节数组。

      重写:
      read 在类 FilterInputStream
      参数:
      b - 读取数据的缓冲区。
      off - 数据的起始偏移量。
      len - 读取的最大字节数。
      返回:
      读入缓冲区的字节总数,如果因为已到达此流的末尾而没有更多数据,则为 -1
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • skip

      public long skip(long n) throws IOException
      已弃用。
      跳过并丢弃此输入流中的 n 字节数据。由于各种原因,skip 方法可能最终会跳过一些较少的字节,可能是 0。返回实际跳过的字节数。如果 n 为负,则不会跳过任何字节。

      LineNumberInputStreamskip 方法创建一个字节数组,然后重复读入它,直到读取了 n 个字节或到达流的末尾。

      重写:
      skip 在类 FilterInputStream
      参数:
      n - 要跳过的字节数。
      返回:
      实际跳过的字节数。
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • setLineNumber

      public void setLineNumber(int lineNumber)
      已弃用。
      将行号设置为指定的参数。
      参数:
      lineNumber - 新的行号。
      参见:
    • getLineNumber

      public int getLineNumber()
      已弃用。
      返回当前行号。
      返回:
      当前行号。
      参见:
    • available

      public int available() throws IOException
      已弃用。
      返回可以从该输入流中无阻塞地读取的字节数。

      请注意,如果底层输入流能够提供k输入字符无阻塞,LineNumberInputStream可以保证只提供k/2 个字符没有阻塞,因为k来自底层输入流的字符可能包括k/2 对 '\r''\n' ,它们被转换为k/2 '\n' 个字符。

      重写:
      available 在类 FilterInputStream
      返回:
      可以无阻塞地从此输入流中读取的字节数。
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • mark

      public void mark(int readlimit)
      已弃用。
      标记此输入流中的当前位置。对 reset 方法的后续调用将此流重新定位在最后标记的位置,以便后续读取重新读取相同的字节。

      LineNumberInputStreammark方法在私有变量中记住当前行号,然后调用底层输入流的mark方法。

      重写:
      mark 在类 FilterInputStream
      参数:
      readlimit - 在标记位置变为无效之前可以读取的最大字节数限制。
      参见:
    • reset

      public void reset() throws IOException
      已弃用。
      将此流重新定位到上次对此输入流调用 mark 方法时的位置。

      LineNumberInputStreamreset方法将行号重置为调用mark方法时的行号,然后调用底层输入流的reset方法。

      流标记旨在用于需要提前阅读以查看流中内容的情况。通常这最容易通过调用一些通用解析器来完成。如果流是解析器处理的类型,它就会愉快地处理。如果流不是那种类型,则解析器在失败时应该抛出一个异常,如果它发生在 readlimit 字节以内,则允许外部代码重置流并尝试另一个解析器。

      重写:
      reset 在类 FilterInputStream
      抛出:
      IOException - 如果发生 I/O 错误。
      参见: