2012-02-06 6 views
0

텍스트 파일에서 문자열을 삭제하고 싶습니다. 나는 이것을하기 위해 임시 파일이 필요하다는 것을 알았다. list.txt 파일을 읽고 문자열을 삭제하고 싶습니다. 검색하고자하는 파일이 이미 만들어지고 채워져 있습니다. 다른 게시물을 보았습니다.이 파일을 내 개인 프로젝트에 맞게 수정하려고합니다. 현재 내가 가지고 :텍스트 파일에서 문자열 삭제 Android - 파일 IO

 package com.nullwall.listmanager; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 

import android.app.Activity; 
import android.os.Bundle; 
import android.os.Environment; 

public class IPR3Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     DoWork("TestString"); 
    } 


public void DoWork(String deleteFromFile) 
{ 
    try{ 
    String delete = deleteFromFile; 
    String line; 

    //locates a new file named list.txt 
    File root = new File(Environment.getExternalStorageDirectory(),"projects"); 
    File file = new File(root, "list.txt"); 

    //creates buffers 
    BufferedReader bufferedReader = new BufferedReader(new FileReader(file.getAbsolutePath())); 
    StringBuffer stringBuffer = new StringBuffer(); 

    //Loads list.txt into bufferedReader, deletes line and moves on 
    while ((line = bufferedReader.readLine()) != null) 
    { 
     if (line.equals(deleteFromFile)) 
     { 
     line.replace(deleteFromFile, ""); 
     stringBuffer.append("\n");  
     } 
     else 
     { 
     stringBuffer.append(line); 
     stringBuffer.append("\n"); 
     } 
    } 
    //Entire file has now been loaded into memory 

    //creates new Filewriter, append to false, rewrites list.txt with stringBuffer minus string 
    FileWriter writer = new FileWriter(file, false); 
    writer.write(stringBuffer.toString()); 
    System.out.println("file written"); 

    //closes writer 
    writer.flush(); 
    writer.close(); 


    } 
    catch (FileNotFoundException ex) { 
     ex.printStackTrace(); 
     } 
     catch (IOException ex) { 
     ex.printStackTrace(); 
     } 

} 


} 

I는 다음과 같이 임의의 문자열을 List.txt 파일이 있습니다 실행 한 후

notstring 
notstring 
notstring 
teststring 
notstring 
notstring 

아무 일도 발생하지 않습니다. 나는 이와 같이 File IO를하기에 상당히 새로운 것이므로 놓친 것 같은 간과하지 마십시오. 고맙습니다! 문자열 버퍼에 파일을 저장

답변

0

시도하면 다음 교체 전체 파일의 내용을 대체하려는 것을 대체합니다. 또 다른 한가지는 File IO가 반드시 Android에서 동일하지는 않다는 것입니다. 안드로이드는 컨텍스트를 사용하기 때문에 파일 IO에 대한 접근 방식이 다릅니다. 안드로이드에서 파일 입출력에 대한 자세한 정보는 dev 사이트를 확인하십시오.

+0

내 게시물을 귀하의 제안과 함께 편집했습니다 ... 아직 아무것도 편집되지 않았습니다. 코드를 올바르게 작성하고 있습니까? 내 사고 과정에 의견을 추가했습니다. – PeterL