안녕하세요, 저는 Java에서 많은 임시 파일을 사용하고 있으며 제 문제는 삭제되지 않는다는 것입니다.가비지 수집을 사용하여 파일을 삭제하는 방법은 무엇입니까?
임시 파일 관리를 직접 처리하지 않고도 (하드가 아니라 허락을 받으면서도 할 일이 많아서이 모든 작업을 효과적으로 수행 할 수 있습니다.) 디스크의 임시 파일이 상당히 규칙적으로 삭제되는지 확인하십시오. 파일을 사용하여 tmp.deleteOnExit()를 말할 수 있지만 파일이 종료되는 유일한 방법은 서비스가 충돌 할 때 (드물게 발생 함) 또는 언제 실행되는지 여부입니다. 시스템이 충돌합니다 (예 : 드라이브가 임시 파일로 가득 차서 클러스터를 무너 뜨릴 때처럼 ...)
생성 된 인스턴스는 가비지 컬렉터에 의해 어느 시점에서 수집되는 것이 가장 이상적입니다. 메모리에서 인스턴스를 참조 해제 할 때 GC가 정리를 마칠 수 있고 실제로 디스크의 파일을 삭제할 수 있다면 응용 프로그램의 유휴 시간은 그냥 멋지다.
내가 볼 수있는 유일한 방법은 File 클래스를 오버로드하고 파이널 라이즈 된 메서드를 추가하는 것입니다 ... 만약 내가 그렇게한다면 내 자신의 임시 파일 관리자와 함께 갈 수도 있습니다!
너무 짧아서 가비지 수집기를 사용하여 시스템 리소스 (예 : 파일)를 정리할 수 있습니까?
답장을 보내 주셔서 감사합니다. 나는 그것을 구현하는 것이 가장 간단하고 결국 내가 한 일인 크리스토퍼의 것을 받아 들였습니다.
나는 오랜 세월 동안 정리 된 것 같아서 기본 관리를 잊어 버렸지 만 C++의 good'ol days에 열심히 할 생각이었습니다.
나는 당신이 당신의 용어를 혼란스럽게 생각합니다. 가비지 컬렉터는 파일이 아닌 메모리 용입니다. –
응용 프로그램 종료에서 실행하려면 원할 경우 가비지 수집이 종료/충돌 (메모리가 해당 시점에 OS에 의해 할당 취소되고 실행되지 않음)로 실행되지 않으므로 무언가를 수동으로 넣어야합니다. 프레임 워크) –
Java에는 소멸자가 없으므로 삭제할 개체를 수집 할 수 없습니다. – lhahne