JavaTM Platform
Standard Ed. 6

java.io
클래스 StreamTokenizer

java.lang.Object 
  상위를 확장 java.io.StreamTokenizer


public class StreamTokenizer
extends Object

StreamTokenizer 클래스는, 입력 스트림을 인수에 취해, 그것을 「토큰」에 구문 분석 해, 한 번에 1 개의 토큰을 읽을 수 있도록(듯이) 합니다. 구문 분석 처리는, 다양한 상태로 설정 가능한 몇개의 플래그와 1 개의 테이블에 의해 제어됩니다. 스트림토크나이자는, 식별자, 수치, 인용 캐릭터 라인, 및 각종의 코멘트 스타일을 인식할 수 있습니다.  

입력 스트림로부터 읽히는 각 바이트는,'\u0000' ~ '\u00FF' 의 범위의 문자로 간주해집니다. 이 문자치를 사용해, 문자의 5 개의 속성, 즉, 「공백」, 「영문자」, 「수치」, 「인용 캐릭터 라인」, 및 「코멘트 문자」를 검색합니다. 각 문자는, 이러한 속성을 가지지 않는 것도, 복수 가질 수도 있습니다.  

게다가 인스턴스에는 4 개의 플래그가 있습니다. 이러한 플래그가 가리키는 내용은 다음과 같습니다.

일반적인 어플리케이션은, 최초로 이 클래스의 인스턴스를 생성하고 나서, 구문 테이블을 설정해, 그 후에 루프의 각 반복내에서 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)
          인수로 지정된 문자 이후는, 1 행의 코멘트행인 것을 지정합니다.
 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 메소드의 호출뒤, 이 필드에는 읽힌지 얼마 안된 토큰의 형태가 들어갑니다. 단일 문자 토큰의 경우, 그 값은 정수에 변환된 단일 문자입니다. 인용 캐릭터 라인 토큰의 경우, 그 값은 인용 문자입니다. 그 이외의 경우는, 다음의 값의 어느 쪽인가에 됩니다.

이 필드의 초기치는 -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);
 

지정된 입력 스트림을 구문 분석 하는 스트림토크나이자를 작성합니다. 스트림토크나이자는, 다음의 디폴트 상태에 초기화됩니다.

파라미터:
is - 입력 스트림
관련 항목:
BufferedReader , InputStreamReader , StreamTokenizer(java.io.Reader)

StreamTokenizer

public StreamTokenizer(Reader  r)
지정된 문자 스트림을 구문 분석 하는 토크나이자를 작성합니다.

파라미터:
r - 입력 스트림을 제공하는 Reader 객체
도입된 버젼:
JDK1. 1
메소드의 상세

resetSyntax

public void resetSyntax()
이 토크나이자의 구문 테이블을 리셋 해, 모든 문자를 「일반적으로」문자로 합니다. 일반적으로 문자의 자세한 것은,ordinaryChar 메소드를 참조해 주세요.

관련 항목:
ordinaryChar(int)

wordChars

public void wordChars(int low,
                      int hi)
low <= c <= high 의 범위내의 모든 문자 c 가 워드 원가요소인 것을 지정합니다. 워드 토큰은, 워드 원가요소의 뒤로 제로개이상의 워드 원가요소 또는 수치 원가요소가 계속된 것입니다.

파라미터:
low - 범위의 최소치
hi - 범위의 최대치

whitespaceChars

public void whitespaceChars(int low,
                            int hi)
low <= c <= high 의 범위내의 모든 문자 c 가 공백 문자인 것을 지정합니다. 공백 문자의 기능은, 입력 스트림내에서 토큰을 단락짓는 것 뿐입니다.

지정된 범위내의 문자에 대한 그 외의 속성의 설정은 모두 클리어 됩니다.

파라미터:
low - 범위의 최소치
hi - 범위의 최대치

ordinaryChars

public void ordinaryChars(int low,
                          int hi)
low <= c <= high 의 범위내의 모든 문자 c 가, 이 토크나이자의 「일반적으로」문자인 것을 지정합니다. 일반적으로 문자의 자세한 것은,ordinaryChar 메소드를 참조해 주세요.

파라미터:
low - 범위의 최소치
hi - 범위의 최대치
관련 항목:
ordinaryChar(int)

ordinaryChar

public void ordinaryChar(int ch)
문자 인수가 이 토크나이자의 「일반적으로」문자인 것을 지정합니다. 코멘트 문자, 워드 원가요소, 캐릭터 라인 단락 문자, 공백, 또는 수치 문자로서 문자가 가지는 특수한 의미는 제거됩니다. 퍼서는, 이러한 문자를 검출하면(자), 이것을 단일의 문자 토큰으로서 취급해,ttype 필드에 문자의 값을 설정합니다.

줄 끝 기호를 「일반적으로」문자로 하면(자),StreamTokenizer 가 행을 카운트 하는 기능에 간섭할 가능성이 있습니다. lineno 메소드가, 행의 카운트로 그러한 줄 끝 기호의 존재를 고려하지 않게 되는 일이 있습니다.

파라미터:
ch - 문자
관련 항목:
ttype

commentChar

public void commentChar(int ch)
인수로 지정된 문자 이후는, 1 행의 코멘트행인 것을 지정합니다. 스트림토크나이자는, 코멘트 문자로부터 행의 마지막까지의 사이의 문자를 모두 무시합니다.

지정된 문자에 대한 그 외의 속성의 설정은 모두 클리어 됩니다.

파라미터:
ch - 문자

quoteChar

public void quoteChar(int ch)
이 문자에 일치하는 페어로, 이 토크나이자의 캐릭터 라인 정수를 단락짓도록(듯이) 지정합니다.  

nextToken 메소드가 캐릭터 라인 정수를 검출하면(자),ttype 필드에는 캐릭터 라인 단락 문자가 설정되어sval 필드에는 캐릭터 라인의 본체가 설정됩니다.  

캐릭터 라인의 인용 문자가 검출되면(자), 캐릭터 라인의 인용 문자 (이것은 포함하지 않는다)의 뒤로부터, 같은 캐릭터 라인의 인용 문자의 다음의 출현 장소, 줄 끝 기호, 또는 파일의 마지막 (이것들은 포함하지 않는다)까지의 모든 문자로 캐릭터 라인이 구성되어 있다고 인식됩니다. "\n""\t" 등의 일반적으로의 escape sequence는 인식되어 캐릭터 라인의 구문 분석시에 단일 문자에 변환됩니다.

지정된 문자에 대한 그 외의 속성의 설정은 모두 클리어 됩니다.

파라미터:
ch - 문자
관련 항목:
nextToken() , sval , ttype

parseNumbers

public void parseNumbers()
이 토크나이자로 수치를 구문 분석 하도록(듯이) 지정합니다. 이 토크나이자의 구문 테이블이 변경됩니다.
      0 1 2 3 4 5 6 7 8 9 .  -
 

이것들 12 개의 각 문자가 「수치」속성을 가지게 됩니다.  

퍼서는, 배정밀도의 부동 소수점수(실수)의 형식의 워드 토큰을 검출하면(자),ttype 필드에 값 TT_NUMBER 를 설정해, 토큰의 수치를 nval 필드에 들어갈 수 있어, 이 토큰을 워드는 아니고 수치로서 취급합니다.

관련 항목:
nval , TT_NUMBER , ttype

eolIsSignificant

public void eolIsSignificant(boolean flag)
행의 마지막을 토큰으로서 처리할지 어떨지를 판별합니다. flag 인수가 true 의 경우, 이 토크나이자는 행의 마지막을 토큰으로서 처리합니다. 행의 마지막이 읽히면(자),nextToken 메소드는 TT_EOL 를 돌려주어,ttype 필드에 이 값을 설정합니다.  

행은, 왕복대 리턴 문자 ('\r') 또는 개행 문자 ('\n')로 끝나는 문자 순서입니다. 또, 직후에 개행 문자가 계속되는 왕복대 리턴 문자는, 줄 끝을 나타내는 단일의 토큰으로서 다루어집니다.  

flag 가 false 의 경우, 줄 끝 문자는 공백으로서 다루어져 그 기능은 토큰을 단락지을 뿐입니다.

파라미터:
flag - true 는, 줄 끝 문자가 독립한 토큰인 것을 나타낸다. false 는, 줄 끝 문자가 공백인 것을 나타내는
관련 항목:
nextToken() , ttype , TT_EOL

slashStarComments

public void slashStarComments(boolean flag)
토크나이자가 C 스타일의 코멘트를 인식할지 어떨지를 판별합니다. flag 인수가 true 의 경우, 이 스트림토크나이자는 C 스타일의 코멘트를 인식합니다. /* (와)과 */ 의 사이의 텍스트는 모두 파기됩니다.  

false 인수가 false 의 경우, C 스타일의 코멘트는 특별히는 다루어지지 않습니다.

파라미터:
flag - true 는, C 스타일의 코멘트를 인식해 무시하는 것을 나타낸다

slashSlashComments

public void slashSlashComments(boolean flag)
토크나이자가 C++ 스타일의 코멘트를 인식할지 어떨지를 판별합니다. flag 인수가 true 의 경우, 이 스트림토크나이자는 C++ 스타일의 코멘트를 인식합니다. slash 문자 ('/')가 2 개 계속되는 경우, 이것은 행의 마지막까지 계속되는 코멘트의 시작을 의미합니다.  

false 인수가 false 의 경우, C++ 스타일의 코멘트는 특별히는 다루어지지 않습니다.

파라미터:
flag - true 는, C++ 스타일의 코멘트를 인식해 무시하는 것을 나타낸다

lowerCaseMode

public void lowerCaseMode(boolean fl)
워드 토큰을 자동적으로 소문자로 할지 어떨지를 판별합니다. flag 인수가 true 의 경우, 워드 토큰이 돌려주어질 때마다 sval 필드의 값이 소문자로 됩니다. ttype 필드가 가지는 값 TT_WORD 는, 이 토크나이자의 nextToken 메소드로부터의 것입니다.  

flag 인수가 false 의 경우,sval 필드는 변경되지 않습니다.

파라미터:
fl - true 는, 모든 워드 토큰을 소문자로 하는 것을 나타내는
관련 항목:
nextToken() , ttype , TT_WORD

nextToken

public int nextToken()
              throws IOException 
이 토크나이자의 입력 스트림의 다음의 토큰을 구문 분석 합니다. 다음의 토큰의 형태는 ttype 필드에 돌려주어집니다. 토큰에 관한 추가 정보는, 이 토크나이자의 nval 필드 또는 sval 필드에 있습니다.  

이 클래스의 일반적인 클라이언트는, 최초로 구문 테이블을 설정하고 나서 nextToken 를 호출하는 루프에 들어가, TT_EOF 가 돌려주어질 때까지 토큰을 차례차례 구문 분석 합니다.

반환값:
ttype 필드의 값
예외:
IOException - 입출력 에러가 발생했을 경우
관련 항목:
nval , sval , ttype

pushBack

public void pushBack()
이 토크나이자의 다음의 nextToken 메소드 호출로 ttype 필드의 현행치를 돌려주어,nval 또는 sval 필드의 값은 변경하지 않게 합니다.

관련 항목:
nextToken() , nval , sval , ttype

lineno

public int lineno()
현재의 행 번호를 돌려줍니다.

반환값:
이 스트림토크나이자의 현재의 행 번호

toString

public String  toString()
현재의 스트림 토큰의 캐릭터 라인 표현과 그것이 발생하는 행 번호를 돌려줍니다.

다음의 예를 일반적인 것이라고 생각할 수 있습니다만, 반환되는 캐릭터 라인은 정확하게 지정되고 있지 않습니다.

Token['a'], line 10

오버라이드(override):
클래스 Object 내의 toString
반환값:
토큰의 캐릭터 라인 표현
관련 항목:
nval , sval , ttype

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.