代码删除文件的内容而不是替换文本

时间:2014-03-31 14:53:45

标签: java text java-io

在我的下面代码中,我想替换文字" DEMO"与人口统计数据"但不是替换文本,而是删除文本文件的整个内容。

文件内容: DEMO 数据 早晨

PS:我是java的初学者

package com.replace.main;

import java.io.*;

public class FileEdit {

public static void main(String[] args) {
    BufferedReader br = null;
    BufferedWriter bw = null;
    String readLine, replacedData;
    try {

        bw = new BufferedWriter(
                new FileWriter(
                        "Demg.ctl"));

        br = new BufferedReader(
                new FileReader(
                        "Demg.ctl"));

        System.out.println(br.readLine()); //I Get Null Printed Here
        while ((readLine = br.readLine())!= null) {
            System.out.println("Inside While Loop");
            System.out.println(readLine);
            if (readLine.equals("DEMO")) {
                System.out.println("Inside if loop");
                replacedData = readLine.replaceAll("DEMO","Demographics");
            }

        }
        System.out.println("After While");
        br.close();
    } catch (IOException e) {

        e.printStackTrace();

    }
  }
}

2 个答案:

答案 0 :(得分:0)

你打开一个Writer到你的文件,但你没有写任何东西。这意味着您的文件将替换为空文件。

除此之外,你还需要关闭你的作家,而不仅仅是读者。

最后但并非最不重要的是,你的if条件是错误的。

 if (readLine.equals("DEMO")) {

应该阅读

 if (readLine.contains("DEMO")) {

否则只有当你的行包含“DEMO”而没有其他内容时它才会返回true。

答案 1 :(得分:0)

I'm updating the answer to my own question.

package com.replace.main;

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

public class FileEdit
    {
     public static void main(String args[])
         {
         try
             {
             BufferedReader reader = new BufferedReader(new FileReader("Demg.ctl"));
             String readLine = ""; 
             String oldtext = "";
             while((readLine = reader.readLine()) != null)
                 {
                 oldtext += readLine + "\r\n";
             }
             reader.close();
             // To replace the text
             String newtext = oldtext.replaceAll("DEMO", "Demographics");

             FileWriter writer = new FileWriter("Demg.ctl");
             writer.write(newtext);
             writer.close();
         }
         catch (IOException e)
             {
             e.printStackTrace();
         }
     }
}