본문 바로가기
안드로이드

파일 입출력

by Siang's 2019. 4. 4.
반응형
Android 내부 저장소에 텍스트 파일(.txt) 읽기 및 쓰기 방법입니다.
/////////////////////// 파일 쓰기 ///////////////////////
String str = input_text.getText().toString();
// 파일 생성
File saveFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/camdata"); // 저장 경로
// 폴더 생성
if(!saveFile.exists()){ // 폴더 없을 경우
saveFile.mkdir(); // 폴더 생성
}
try {
long now = System.currentTimeMillis(); // 현재시간 받아오기
Date date = new Date(now); // Date 객체 생성
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = sdf.format(date);

BufferedWriter buf = new BufferedWriter(new FileWriter(saveFile+"/CarnumData.txt", true));
buf.append(nowTime + " "); // 날짜 쓰기
buf.append(str); // 파일 쓰기
buf.newLine(); // 개행
buf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}1) File 객체를 생성합니다. 2) Environment.getExternalStorageDirectory().getAbsolutePath() 까지 현재 경로이며 사용할 폴더를 하나 생성해줍니다. 3) 폴더가 없을 경우 mkdir()을 통해 생성해줍니다. 4) BufferedWriter를 통해 파일을 엽니다. 두번째 parameter를 true로 함으로써 파일을 이어서 쓰도록 합니다. 5) 사용 후 close()로 객체를 꼭 닫아줍니다.


/////////////////////// 파일 읽기 ///////////////////////
// 파일 생성
String line = null; // 한줄씩 읽기
File saveFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/camdata"); // 저장 경로
// 폴더 생성
if(!saveFile.exists()){ // 폴더 없을 경우
saveFile.mkdir(); // 폴더 생성
}
try {
BufferedReader buf = new BufferedReader(new FileReader(saveFile+"/CarnumData.txt"));
while((line=buf.readLine())!=null){
tv.append(line);
tv.append("\n");
}
buf.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
1) File 객체를 생성합니다. 2) Environment.getExternalStorageDirectory().getAbsolutePath() 까지 현재 경로이며 사용할 폴더를 하나 생성해줍니다. 3) 폴더가 없을 경우 mkdir()을 통해 생성해줍니다. 4) BufferedReader 를 통해 파일을 엽니다.

5) while문을 이용하여 파일을 한줄씩 읽어옵니다. 5) 사용 후 close()로 객체를 꼭 닫아줍니다.


출처: https://yeolco.tistory.com/32 [열코의 프로그래밍 일기]
반응형

'안드로이드' 카테고리의 다른 글

원그리기  (0) 2019.04.16
클립보드로 텍스트복사하기  (0) 2019.04.16
업데이트체크  (0) 2019.04.03
뒤로가기(back button) 종료 묻기  (0) 2019.03.20
DialogRadio  (0) 2019.03.20