2012-02-06 128 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(); 
     } 

} 


} 

我與隨機字符串LIST.TXT這樣的:

notstring 
notstring 
notstring 
teststring 
notstring 
notstring 

運行後,沒有任何反應。我很喜歡這樣做File IO,所以請不要忽略我可能錯過的簡單事情。謝謝!

回答

0

嘗試將文件存儲到字符串緩衝區中替換您想要替換的文件,然後完全替換文件的內容。另外還有一點是File IO在android中不一定是一樣的。由於android使用上下文,文件IO的方法不同。檢查開發網站的更多信息從Android的文件IO。

+0

編輯我的文章與您的建議...仍然沒有被編輯。我是否正確編寫代碼?我在思考過程中添加了評論。 – PeterL 2012-02-06 18:23:18