2014-03-31 5 views
0

아래 코드에서 "DEMO"텍스트를 "Demographics"로 바꾸고 싶지만 텍스트를 바꾸는 대신 텍스트 파일의 전체 내용을 삭제합니다. 파일 내부코드는 텍스트를 바꾸는 대신 파일의 내용을 삭제합니다.

내용 : DEMO 데이터 아침

PS : 나는 자바 초보자 해요

당신은 당신의 파일에 작가를 열고,하지만 당신은 아무것도 쓰지 않는다
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(); 

    } 
    } 
} 

답변

0

. 즉, 파일이 빈 파일로 바뀝니다.

이 외에도 독자뿐 아니라 작가를 닫아야합니다.

마지막으로 if 조건이 잘못되었습니다.

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

은 라인 "DEMO"하지만 아무것도 포함 된 경우

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

그렇지 않으면 그것은 단지 사실 반환 읽어야합니다.

+0

감사합니다. 그러나 파일의 내용을 대체하기 위해 Writer를 어떻게 열 수 있습니까? 내 코드에서 FileWriter를 제거해야합니까? – balajiv

+0

'코드에서 새로운 FileWriter ("Demg.ctl")'이이 작성자를 생성합니다. 변수'bw'에 쓸 수 있습니다. –

+0

대체 텍스트가 원본 텍스트와 길이가 다른 경우 파일의 일부 텍스트를 단순히 "바꿀"방법이 없습니다. 전체 파일을 출력에 복사하고 복사하는 동안 교체를 수행 한 다음 원본을 삭제하고 출력을 이전 이름으로 바꿔야합니다. –

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(); 
     } 
    } 
} 
관련 문제