所有类


java.io
类 StreamTokenizer

java.lang.Object
  继承者 java.io.StreamTokenizer

public class StreamTokenizer
   
   
   
   
   
extends Object

StreamTokenizer 类获取输入流并将其分析为“标记”,允许一次读取一个标记。分析过程由一个表和许多可以设置为各种状态的标志控制。该流的标记生成器可以识别标识符、数字、引用的字符串和各种注释样式。

从输入流读取的每个字节都被视为一个字符,范围在 '\u0000''\u00FF' 之间。字符值用于查找该字符的五个可能属性:空白字母数字字符串引号注释字符。每个字符都可以有零个或多个这样的属性。

另外,一个实例还有四个标志。这些标志指示:

  • 行结束符是作为标记返回,还是被视为仅用于分隔标记的空白。
  • 是标识还是跳过 C 样式注释。
  • 是标识还是跳过 C++ 样式注释。
  • 是否将标识符的字符转换为小写字母。

典型的应用程序首先构造此类的一个实例,建立一个语法表,然后重复循环,调用该循环的每个迭代中的 nextToken 方法,直到返回值 TT_EOF

从以下版本开始:
JDK1.0
另请参见:
nextToken(), TT_EOF

字段摘要
 double nval
          如果当前标记是一个数字,则此字段将包含该数字的值。
 String sval
          如果当前标记是一个文字标记,则此字段包含一个给出该文字标记的字符的字符串。
static int TT_EOF
          指示已读到流末尾的常量。
static int TT_EOL
          指示已读到行末尾的常量。
static int TT_NUMBER
          指示已读到一个数字标记的常量。
static int TT_WORD
          指示已读到一个文字标记的常量。
 int ttype
          在调用 nextToken 方法之后,此字段将包含刚读取的标记的类型。
 
构造方法摘要
StreamTokenizer(InputStream is)
          已过时。 从 JDK 版本 1.1 开始,标记输入流的首选方法是将其转换为一个字符流,例如:
   Reader r = new BufferedReader(new InputStreamReader(is));
   StreamTokenizer st = new StreamTokenizer(r);
 
StreamTokenizer(Reader r)
          创建分析给定字符流的标记生成器。
 
方法摘要
 void commentChar(int ch)
          指定该字符参数启动一个单行注释。
 void eolIsSignificant(boolean flag)
          确定是否将行末尾视为标记。
 int lineno()
          返回当前行号。
 void lowerCaseMode(boolean fl)
          确定是否对文字标记自动使用小写字母。
 int nextToken()
          从此标记生成器的输入流中分析下一个标记。
 void ordinaryChar(int ch)
          指定字符参数在此标记生成器中是“普通”字符。
 void ordinaryChars(int low, int hi)
          指定 low <= c <= high 范围中的所有字符 c 在此标记生成器中都是“普通”字符。
 void parseNumbers()
          指定此标记生成器应分析的数字。
 void pushBack()
          导致对此标记生成器的 nextToken 方法的下一个调用返回 ttype 字段中的当前值,而不修改 nvalsval 字段中的值。
 void quoteChar(int ch)
          指定此字符的匹配对分隔此标记生成器中的字符串常量。
 void resetSyntax()
          重置此标记生成器的语法表,使所有字符都成为“普通”字符。
 void slashSlashComments(boolean flag)
          确定标记生成器是否识别 C++ 样式注释。
 void slashStarComments(boolean flag)
          确定标记生成器是否识别 C 样式注释。
 String toString()
          返回当前流标记和在其上发生的行号的字符串表示形式。
 void whitespaceChars(int low, int hi)
          指定 low <= c <= high 范围中的所有字符 c 都是空白字符。
 void wordChars(int low, int hi)
          指定 low <= c <= high 范围中的所有字符 c 都是文字成分。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

ttype

public int ttype
在调用 nextToken 方法之后,此字段将包含刚读取的标记的类型。对于单个字符标记,其值是转换为一个整数的单一字符。对于引用的字符串标记,其值是引号字符。否则,其值是下列值之一:
  • TT_WORD 指示该标记是一个文字。
  • TT_NUMBER 指示该标记是一个数字。
  • TT_EOL 指示已读到行的末尾。如果已使用参数 true 调用 eolIsSignificant 方法,则该字段只能使用此值。
  • TT_EOF 指示已到达输入流的末尾。

此字段的初始值为 -4。

另请参见:
eolIsSignificant(boolean), nextToken(), quoteChar(int), TT_EOF, TT_EOL, TT_NUMBER, TT_WORD

TT_EOF

public static final int TT_EOF
指示已读到流末尾的常量。

另请参见:
常量字段值

TT_EOL

public static final int TT_EOL
指示已读到行末尾的常量。

另请参见:
常量字段值

TT_NUMBER

public static final int TT_NUMBER
指示已读到一个数字标记的常量。

另请参见:
常量字段值

TT_WORD

public static final int TT_WORD
指示已读到一个文字标记的常量。

另请参见:
常量字段值

sval

public String sval
如果当前标记是一个文字标记,则此字段包含一个给出该文字标记的字符的字符串。当前标记是一个引用的字符串标记时,此字段将包含该字符串的正文。

ttype 字段的值是 TT_WORD 时,当前标记将是一个文字。ttype 字段的值是一个引号字符时,当前标记将是一个引用的字符串标记。

此字段的初始值为 null。

另请参见:
quoteChar(int), TT_WORD, ttype

nval

public double nval
如果当前标记是一个数字,则此字段将包含该数字的值。ttype 字段的值是 TT_NUMBER 时,当前标记将是一个数字。

此字段的初始值为 0.0。

另请参见:
TT_NUMBER, ttype
构造方法详细信息

StreamTokenizer

@Deprecated
public StreamTokenizer(InputStream is)
已过时。 从 JDK 版本 1.1 开始,标记输入流的首选方法是将其转换为一个字符流,例如:
   Reader r = new BufferedReader(new InputStreamReader(is));
   StreamTokenizer st = new StreamTokenizer(r);
 

创建一个分析指定输入流的流标记生成器。该流标记生成器初始化为以下默认状态:
  • 'A''Z'、从 'a''z' 以及从 '\u00A0''\u00FF' 的所有字节值都被视为字母。
  • '\u0000''\u0020' 的所有字节值都被视为空白。
  • '/' 是注释字符。
  • 单引号 '\'' 和双引号 '"' 字符串引用字符。
  • 数字被分析。
  • 行的末尾被视为空白,而不视为分隔标记。
  • C 样式和 C++ 样式的注释不被识别。

参数:
is - 输入流。
另请参见:
BufferedReader, InputStreamReader, StreamTokenizer(java.io.Reader)

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部