홈>
myFile.txt
라는 파일에 쓰고 싶습니다
프로그램을 열 때마다 프로그램의 이전 실행에서 해당 이름을 가진 파일이 존재하는 경우 덮어 쓰기를 원합니다. 어떻게하면 되나요? 읽은 내용 :
RandomAccessFile f = new RandomAccessFile("myFile.txt", "rw");
그러나 이것이 기존 파일을 덮어 씁니까? 문서가 그 내용을 알려주지 않습니다. 이전 파일을 완전히 삭제하는 것이 중요합니다. 현재 실행에서 파일 길이의 절반 만 덮어 쓴 경우 파일의 끝이 아직 존재하지 않게하고 싶습니다.
수정 : 테스트를 통해 "rw"가 기존 파일을 삭제하지는 않는다는 것을 알았습니다. 파일의 맨 위에 덮어 쓰기 만하고 나머지 파일은 그대로 둡니다.
필요에 맞는 대체 솔루션을 찾았습니다 :
RandomAccessFile file = new RandomAccessFile("myFile.txt", "rw");
file.setLength(0);
file.write(contentBytes);
그러나 더 짧은 방법으로 할 수 있다면 좋을 것입니다.
- 답변 # 1
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- JavaScript 변수를 HTML div에 '출력'하는 방법
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- python - 화면에서 찾은 요소를 찾을 수없는 경우 셀레늄
RandomAccessFile
열 때 파일을 제거하는 시작 모드가 없습니다.setLength(0)
를 호출하여 개봉 후 바로자를 수 있습니다. , 제안한 방식. 당신은 또한FileChannel
를 얻을 수 있습니다 그리고truncate(0)
에 전화 그것에.RandomAccessFile
를 사용하는 경우 오직contentBytes
를 쓰는 것 배열, 당신은FileOutputStream
를 사용하여 코드를 단순화 할 수 있습니다 , 파일을 열 때 파일이 잘립니다 (파일 첨부를 명시 적으로 요청하지 않는 한) :long pos = fos.getChannel().position();