package com.example.bong.threadtest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
//UI Member
private Button btn_start;
private TextView textView_nowDegree;
//읽은 파일의 값을 저장할 변수
private ArrayList<String> arrayList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_start = (Button)findViewById(R.id.btn_start);
textView_nowDegree = (TextView)findViewById(R.id.text_nowdegree);
textView_nowDegree.setMovementMethod(new ScrollingMovementMethod());
btn_start.setOnClickListener(click);
}
View.OnClickListener click = new View.OnClickListener() {
@Override
public void onClick(View v) {
//클릭을 하면 일단 파일을 불러온다.
FileLoadThread flt = new FileLoadThread();
flt.start();
//파일을 불러온후 그 파일을 한줄씩 읽어 TextView에 출력한다.
TimerThread tt = new TimerThread();
tt.start();
}
};
public void loadText(){
InputStream fis = getResources().openRawResource(R.raw.test);
arrayList = new ArrayList<String>();
try{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis, "EUC-KR"));
while (true){
String string = bufferedReader.readLine();
if(string != null){
arrayList.add(string);
}else {
break;
}
}
}catch (IOException e){e.printStackTrace();}
}
public class TimerThread extends Thread{
@Override
public void run(){
int i = 0;
while (true) {
try {
sleep(1000); //1초 쉼
} catch (InterruptedException e) {
e.printStackTrace();
}
if(i >= arrayList.size()){
break;
}
else if(arrayList.get(i) != null){
textView_nowDegree.append(arrayList.get(i) + "\n");
i++;
}
}
}
}
public class FileLoadThread extends Thread{
@Override
public void run(){
loadText();
}
}
}
res/raw/test.txt 에 있는 파일을 불러와서 버튼을 누르면 한줄씩 출력하는 어플을 만들어 봤는데요
어플을 실행하면 바로 종료가 되버리네요 ㅠㅠ 어디가 문제인지 고수님들 도와주세요.