簡體   English   中英

代碼刪除文件的內容,而不是替換文本

[英]Code deletes the content of the file rather than replacing a text

在下面的代碼中,我想將文本“ DEMO”替換為“ Demographics”,但不是替換文本,而是刪除了文本文件的全部內容。

文件內的內容: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();

    }
  }
}

您打開一個Writer到您的文件,但您什么也不寫。 這意味着您的文件被替換為空文件。

除此之外,您還需要關閉您的作者,而不僅僅是讀者。

最后但並非最不重要的一點是,如果條件錯誤。

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

應該讀

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

否則,僅當您的行包含“ DEMO”但沒有其他內容時,它才會返回true。

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();
         }
     }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM