아니요, canWrite는이 용도로 적합하지 않습니다. 일반적으로 파일은 다른 프로세스가 쓰고 있어도 쓰기 가능합니다.
잠금을 조정하려면 상위 수준의 프로토콜이 필요합니다. 단일 플랫폼에서이 코드를 사용하려는 경우 NIO's FileLock facility을 사용할 수 있습니다. 그러나 문서를주의 깊게 읽으십시오. 많은 플랫폼에서 잠금 장치는 권고 사항입니다.
또 다른 접근법은 하나의 프로세스가 프로세스가 인식하지 못하는 이름으로 파일을 작성한 다음 쓰기가 완료되면 파일을 인식 가능한 이름으로 이름을 바꾸는 것입니다. 대부분의 플랫폼에서 소스와 대상이 동일한 파일 시스템 볼륨 인 경우 이름 바꾸기 작업은 원 자성입니다. 이름 변경은 다른 파일 확장자를 사용하거나 파일을 한 디렉토리에서 다른 디렉토리 (같은 볼륨에 있음)로 옮길 수도 있습니다.
이 경우 독점적으로 XML로 작업하기 때문에 닫기 태그를 찾는 것이 효과적 일 수 있지만 확실하지는 않습니다 — 최종 마크 업 이후에 주석이 있거나 작성자가 단순히 유효하지 않은 경우 XML?
EOF는 이 아니며 작품을 찾고 있습니다. 작성자가 파일을 방금 열었지만 아직 아무것도 작성하지 않은 경우에도 항상 EOF가 있습니다. 그렇지 않은 경우 가장 쉬운 방법은 파일이 표시되는 즉시 독자가 구문 분석을 시작할 수 있도록하는 것입니다. 그것은 단순히 작가가 파일을 닫을 때까지 차단 될 것입니다. 그러나 파일 시스템은 이런 식으로 작동하지 않습니다. 어떤 프로세스가 현재 그것을 옮기고있다하더라도 모든 파일은 끝이 있습니다.
이 이름 바꾸기 트릭은 Windows에서만 작동합니다. 맞습니까? – Serxipc