Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java를 사용하여 .txt 파일의 줄을 덮어쓰는 방법은 무엇입니까?

<시간/>

사용된 API

replaceAll() String 클래스의 메소드는 정규 표현식과 교체 문자열을 나타내는 두 개의 문자열을 받아들이고 일치하는 값을 주어진 문자열로 바꿉니다.

java.util 클래스 (생성자)는 File, InputStream, Path 및 String 객체를 받아들이고 정규 표현식을 사용하여 토큰별로 모든 기본 데이터 유형과 문자열(주어진 소스에서) 토큰을 읽습니다. 제공된 nextXXX() 메소드를 사용하여 소스에서 다양한 데이터 유형을 읽으려면

문자열 버퍼 class는 String의 변경 가능한 대안입니다. 이 클래스를 인스턴스화한 후 append() 메서드를 사용하여 데이터를 추가할 수 있습니다.

절차

파일의 특정 줄을 덮어쓰려면 -

String −

로 파일 내용을 읽습니다.
  • File 클래스를 인스턴스화합니다.

  • 파일을 생성자에 매개변수로 전달하는 Scanner 클래스를 인스턴스화합니다.

  • 빈 StringBuffer 개체를 만듭니다.

  • append() 메서드를 사용하여 파일 내용을 한 줄씩 StringBuffer 객체에 추가합니다.

  • toString() 메서드를 사용하여 StringBuffer를 String으로 변환합니다.

  • 스캐너 개체를 닫습니다.

replaceAll() 호출 획득한 문자열에 대한 메소드로 대체할 라인(이전 라인)과 대체 라인(새 라인)을 매개변수로 전달합니다.

파일 내용 다시 쓰기 -

  • FileWriter 클래스를 인스턴스화합니다.

  • append() 메서드를 사용하여 replaceAll() 메서드의 결과를 FileWriter 객체에 추가합니다.

  • flush() 메소드를 사용하여 추가된 데이터를 파일에 푸시합니다.

예시

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class OverwriteLine {
   public static void main(String args[]) throws IOException {
      //Instantiating the File class
      String filePath = "D://input.txt";
      //Instantiating the Scanner class to read the file
      Scanner sc = new Scanner(new File(filePath));
      //instantiating the StringBuffer class
      StringBuffer buffer = new StringBuffer();
      //Reading lines of the file and appending them to StringBuffer
      while (sc.hasNextLine()) {
         buffer.append(sc.nextLine()+System.lineSeparator());
      }
      String fileContents = buffer.toString();
      System.out.println("Contents of the file: "+fileContents);
      //closing the Scanner object
      sc.close();
      String oldLine = "No preconditions and no impediments. Simply Easy Learning!";
      String newLine = "Enjoy the free content";
      //Replacing the old line with new line
      fileContents = fileContents.replaceAll(oldLine, newLine);
      //instantiating the FileWriter class
      FileWriter writer = new FileWriter(filePath);
      System.out.println("");
      System.out.println("new data: "+fileContents);
      writer.append(fileContents);
      writer.flush();
   }
}

출력

Contents of the file: Tutorials Point originated from the idea that there exists a 
class of readers who respond better to online content and prefer to learn new skills.
Our content and resources are freely available and we prefer to keep it that way to 
encourage our readers acquire as many skills as they would like to.
We don’t force our readers to sign up with us or submit their details either.
No preconditions and no impediments. Simply Easy Learning!

new data: Tutorials Point originated from the idea that there exists a class of readers 
who respond better to online content and prefer to learn new skills.
Our content and resources are freely available and we prefer to keep it that way to 
encourage our readers acquire as many skills as they would like to.
We don’t force our readers to sign up with us or submit their details either.
Enjoy the free content