[java] 자신을 삭제하지 않고 텍스트 파일의 내용을 삭제하는 방법

파일 ‘A’의 내용을 파일 ‘B’에 복사하고 싶습니다. 복사가 끝나면 파일 ‘A’의 내용을 지우고 처음부터 쓰고 싶습니다. 다른 작업과 관련된 파일 ‘A’를 삭제할 수 없습니다.

Java의 파일 API (readLine ())를 사용하여 내용을 복사 할 수 있었지만 파일 내용을 지우고 파일 포인터를 파일 시작 부분으로 설정하는 방법을 모릅니다.



답변

빈 문자열을 파일에 인쇄하십시오.

PrintWriter writer = new PrintWriter(file);
writer.print("");
writer.close();


답변

파일에 빈 문자열을 쓸 필요조차 없다고 생각합니다.

PrintWriter pw = new PrintWriter("filepath.txt");
pw.close();


답변

RandomAccessFile 클래스에서 setLength () 메서드를 원합니다.


답변

간단하고 아무것도 쓰지 마십시오!

FileOutputStream writer = new FileOutputStream("file.txt");
writer.write(("").getBytes());
writer.close();


답변

자르기 작업을위한 하나의 라이너 :

FileChannel.open(Paths.get("/home/user/file/to/truncate"), StandardOpenOption.WRITE).truncate(0).close();

자세한 정보는 Java 문서 : https://docs.oracle.com/javase/7/docs/api/java/nio/channels/FileChannel.html


답변

아래는 어떻습니까?

File temp = new File("<your file name>");
if (temp.exists()) {
    RandomAccessFile raf = new RandomAccessFile(temp, "rw");
    raf.setLength(0);
}


답변

A에서 B로 복사 한 후 파일 A를 다시 쓰기 모드로 열고 그 안에 빈 문자열을 씁니다.