java - 使用Java修改文件内容

标签 java file-io io filereader filewriter

我想使用 java 程序删除文件的一些内容,如下所示。这是在同一个文件中替换的写入方法还是应该复制到另一个文件。

但是它删除了文件的所有内容。

class FileReplace
{
    ArrayList<String> lines = new ArrayList<String>();
    String line = null;
    public void  doIt()
    {
        try
        {
            File f1 = new File("d:/new folder/t1.htm");
            FileReader fr = new FileReader(f1);
            BufferedReader br = new BufferedReader(fr);
            while (line = br.readLine() != null)
            {
                if (line.contains("java"))
                    line = line.replace("java", " ");
                lines.add(line);
            }
            FileWriter fw = new FileWriter(f1);
            BufferedWriter out = new BufferedWriter(fw);
            out.write(lines.toString());
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
        }
    }
    public statc void main(String args[])
    {
        FileReplace fr = new FileReplace();
        fr.doIt();
    }
}

最佳答案

我将从关闭读取器和刷新写入器开始:

public class FileReplace {
    List<String> lines = new ArrayList<String>();
    String line = null;

    public void  doIt() {
        try {
            File f1 = new File("d:/new folder/t1.htm");
            FileReader fr = new FileReader(f1);
            BufferedReader br = new BufferedReader(fr);
            while ((line = br.readLine()) != null) {
                if (line.contains("java"))
                    line = line.replace("java", " ");
                lines.add(line);
            }
            fr.close();
            br.close();

            FileWriter fw = new FileWriter(f1);
            BufferedWriter out = new BufferedWriter(fw);
            for(String s : lines)
                 out.write(s);
            out.flush();
            out.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String args[]) {
        FileReplace fr = new FileReplace();
        fr.doIt();
    }
}

关于java - 使用Java修改文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741751/

相关文章:

java - 为什么我总是需要将 FileReader 链接到其他阅读器?

javascript - 使用 JQuery ajax 和 Spring DeferredResult 进行长轮询返回空白结果

java - 如何在eclipse中查找类路径中的文件

java - 控制键盘输入到 javafx TextField

c++ - 将字符串添加到 vector<const char *> 会导致 strtok() 出现奇怪的行为

python - 在文件开头写()?

java - 使用 DnD 在 JPanel 中移动和重新排序 JLabel

asp.net - 使用 FileStream 下载文件时,为什么页面错误消息指的是 aspx 页面名称,而不是文件名?

java - 使用 toString 逐行打印到文本文件

go - 在goroutine中将字符串写入文件