|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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 字段中的当前值,而不修改 nval 或 sval 字段中的值。 |
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。
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
构造方法详细信息 |
---|
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)
- 从