본문 바로가기
안드로이드+자바

안드로이드 StringTokenizer으로 파싱하는 간단한 코드

by 문자메일 2017. 1. 8.
package app.app1;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class MainActivity extends Activity {


private static final String TAG = "TAG";

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Log.i(TAG, "parser()");


//R.raw에 token파일을 만들어서 token파일에 적혀 있는 정보를 읽어오기
InputStream inputStream = getResources().openRawResource(R.raw.token);
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferReader = new BufferedReader(inputStreamReader);

StringBuffer stringBuffer = new StringBuffer();
String line = null;

try {
while((line = bufferReader.readLine())!= null){ //한 줄씩 읽어서
stringBuffer.append(line); //버퍼에 더한다
}
Log.i(TAG, "stringBuffer: " + stringBuffer.toString());

String str = stringBuffer.toString(); //바이트 버퍼를 String으로 변환

StringTokenizer token1 = new StringTokenizer(str,"|");
while(token1.hasMoreElements()){//남은 토큰이 있다면
String tokenStr = token1.nextToken(); //"|"로 나눈 토큰을 앞에꺼부터 받기
Log.i(TAG, "token1 : " + tokenStr); //현재 토큰 부분

StringTokenizer token2 = new StringTokenizer(tokenStr, ",");//","로 토큰 나누기
while(token2.hasMoreElements()){
String tokenStr2 = token2.nextToken(); //토큰으로 차례대로 읽어오기
Log.i(TAG, "token2Str : " + tokenStr2);

}

}
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
//자원 해제
bufferReader.close();
inputStreamReader.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}


}



실행 예

댓글