본문 바로가기

소프트웨어/Android/Java/Ndk

Android] java. TXT파일을 읽어서 특정부분 지우기

TXT를 읽어와서 특정 줄만 지워야 할 때가 있는데, 이럴때는 BufferedReader로 열고 FilWriter로 덮어쓰기를 실시한다.


//파일 열어서 삭제하는 로직 

File file = new File(sumFilePath);

String dummy = "";

try {

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));

//BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));

//1. 삭제하고자 하는 position 이전까지는 이동하며 dummy에 저장

String line;

for(int i=0; i<position; i++) {

   line = br.readLine(); //읽으며 이동

   dummy += (line + "\r\n" ); 

}

//2. 삭제하고자 하는 데이터는 건너뛰기

String delData = br.readLine();

Log.d("mstag","삭제되는 데이터 = "+delData);

//3. 삭제하고자 하는 position 이후부터 dummy에 저장

while((line = br.readLine())!=null) {

dummy += (line + "\r\n" ); 

}

//4. FileWriter를 이용해서 덮어쓰기

FileWriter fw = new FileWriter(sumFilePath);

fw.write(dummy);

//bw.close();

fw.close();

br.close();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}