从文本文件Android-file IO删除字符串

从文本文件Android-file IO删除字符串,android,file-io,Android,File Io,我想从文本文件中删除一个字符串。我已经看到,我需要一个临时文件来做这件事。我想从list.txt文件中读取并删除其中的字符串。我希望搜索的文件已经创建并填充了,我已经看到了关于这个的其他帖子,并且正在尝试将其修改为我自己的个人项目。目前我有: package com.nullwall.listmanager; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundExcept

我想从文本文件中删除一个字符串。我已经看到,我需要一个临时文件来做这件事。我想从list.txt文件中读取并删除其中的字符串。我希望搜索的文件已经创建并填充了,我已经看到了关于这个的其他帖子,并且正在尝试将其修改为我自己的个人项目。目前我有:

        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

跑步后,什么也没发生。我对这样做文件IO相当陌生,所以请不要忽略我可能错过的简单事情。谢谢大家!

尝试将文件存储到字符串缓冲区中,替换要替换的内容,然后完全替换文件内容。另外,文件IO在android中也不一定相同。因为android使用上下文,所以文件IO的方法是不同的。查看开发人员网站,了解更多关于android文件IO的信息。

用您的建议编辑了我的帖子……仍然没有编辑任何内容。我写的代码正确吗?我在思考过程中添加了评论。