从文本文件Android-file IO删除字符串
我想从文本文件中删除一个字符串。我已经看到,我需要一个临时文件来做这件事。我想从list.txt文件中读取并删除其中的字符串。我希望搜索的文件已经创建并填充了,我已经看到了关于这个的其他帖子,并且正在尝试将其修改为我自己的个人项目。目前我有:从文本文件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
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的信息。用您的建议编辑了我的帖子……仍然没有编辑任何内容。我写的代码正确吗?我在思考过程中添加了评论。