'A'파일의 내용을 'B'파일에 복사하고 싶습니다. 복사가 완료된 후 'A'파일의 내용을 지우고 처음부터 쓰기를 원합니다. 'A'파일은 다른 작업과 관련되어 삭제할 수 없습니다.삭제하지 않고 텍스트 파일의 내용을 삭제하는 방법
자바의 파일 API (readLine())를 사용하여 콘텐츠를 복사 할 수 있었지만 파일의 내용을 지우고 파일 포인터를 파일의 시작 부분으로 설정하는 방법을 알지 못합니다.
'A'파일의 내용을 'B'파일에 복사하고 싶습니다. 복사가 완료된 후 'A'파일의 내용을 지우고 처음부터 쓰기를 원합니다. 'A'파일은 다른 작업과 관련되어 삭제할 수 없습니다.삭제하지 않고 텍스트 파일의 내용을 삭제하는 방법
자바의 파일 API (readLine())를 사용하여 콘텐츠를 복사 할 수 있었지만 파일의 내용을 지우고 파일 포인터를 파일의 시작 부분으로 설정하는 방법을 알지 못합니다.
그냥 파일에 빈 문자열을 인쇄 모드에서 쓰기에 다시 열려있는 파일을 B 다음 빈 문자열을 작성하는에서 복사 후 RandomAccessFile 클래스의 setLength() 메서드
빈 문자열을 파일에 플러시하고 닫습니다. 파일 기록기가 추가 모드가 아닌지 확인하십시오. 나는 그 트릭을해야한다고 생각해.
간단하고 작성하지 않아도됩니다!
PrintWriter writer = new PrintWriter(file);
writer.print("");
writer.close();
이
당신이 원하는 :
FileOutputStream writer = new FileOutputStream("file.txt");
writer.write(("").getBytes());
writer.close();
파일을 삭제하지 않기 때문에 실제로 이것은 유일한 정답입니다. 다른 모든 대답이 있습니다. – EJP
[logback-android] (https://github.com/tony19/logback-android) 라이브러리에서 만든 로그 파일을 지우고 싶기 때문에이 파일이 필요합니다. 만약 로그 파일을 수동으로 지우면, 라이브러리가 충분히 영리하지 않아서 앱을 다시 시작할 때까지 쓸 로그가 있다면 다시 생성하십시오. 따라서이 방법을 사용하고 작업했습니다. 나는 많이 공부하지 않았다. 최선의 접근 방법이 아닙니까? 제발 조언. – Yeung
.png 파일에서 설치된 응용 프로그램의 fileOnSdCard.setLength (0)을 호출하면 Intenso 카드 클래스 10 동결 (강제로 배터리 재설정)이 발생하기 때문에 funnily 문제가 있습니다. 클래스 4 카드는 그 문제를 결코 보여주지 못했습니다. – Poutrathor
당신이 (너무 늦기하지만 아래 코드/다른 사람을 도움이 될 것입니다)
public static FileInputStream getFile(File fileImport) throws IOException {
FileInputStream fileStream = null;
try {
PrintWriter writer = new PrintWriter(fileImport);
writer.print(StringUtils.EMPTY);
fileStream = new FileInputStream(fileImport);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
writer.close();
}
return fileStream;
}
빈 파일을 만들지 않으며, 하나의 null 바이트가있는 파일을 만듭니다. – EJP
과 같은 일반적인 방법을 쓸 수 있습니다 그냥 쓰기 :
FileOutputStream writer = new FileOutputStream("file.txt");
하나는 Apache Projects이며,이를 참조 바랍니다. 파일 관련 작업의 경우 Commons IO 프로젝트를 참조 할 수 있습니다.
아래 한 줄 코드는 파일을 비워 두는 데 도움이됩니다.
FileUtils.write(new File("/your/file/path"), "")
당신은
FileWriter fw = new FileWriter(/*your file path*/);
PrintWriter pw = new PrintWriter(fw);
pw.write("");
pw.flush();
pw.close();
는 APPEND 가능합니다 filewriter 생성자에서 진정한
FileWriter fw = new FileWriter(/*your file path*/,true);
를 사용하지 않는 기억 사용할 수 있습니다.자바 문서에
FileChannel.open(Paths.get("/home/user/file/to/truncate")).truncate(0).close();
더 많은 정보를 사용할 수 :
File temp = new File("<your file name>");
if (temp.exists()) {
RandomAccessFile raf = new RandomAccessFile(temp, "rw");
raf.setLength(0);
}
하나 라이너 잘라 내기 작업을 할 아래에 대해 어떻게
당신은을 사용할 필요가없는 경우 작가 후에 가장 짧고 깨끗한 방법은 다음과 같습니다.
new FileWriter("/path/to/your/file.txt").close();
FileOutputStream fos = openFileOutput("/*file name like --> one.txt*/", MODE_PRIVATE);
FileWriter fw = new FileWriter(fos.getFD());
fw.write("");
안녕하세요. 코드를 쉽게 읽을 수 있도록 {}을 (를) 사용할 수 있습니다. –
안녕하세요. SO! 코드를 쉽게 읽을 수 있도록 기본 제공 서식 도구를 사용하십시오. –
쓰기가 필요하지 않으며 다른 작업에 파일이 열려 있으면 열기가 불가능할 수도 있습니다. – EJP
writer.close ??, 우리는 2017 년에 !!!입니다. 또한 텍스트를 덮어 쓰게되므로 인쇄 할 필요가 없습니다 ("") – FSm
@Andro, 타임 스탬프와 태그를 확인합니까? 그 당시에는 Android 기기에서 파일을 비우는 것이 가장 믿을만한 방법이라는 것을 기억합니다. – Vlad