이 질문은 this 질문의 성난 복제본임을 알고 있습니다. 그러나, 나는 지금 전체 페이지를 두 번 읽었고, 일부 섹션은 세 번이나, 나 인생은 내가 어떻게/어디서 대답하는지 보지 못한다!자바 6 파일 삭제
내 문제에 관해서.
나는 일하고있어 Java 6 SE를 사용하여 붙어있어 7로 업그레이드 할 수 없습니다. 파일을 만들고, 쓰고, 처리하고, 파일을 삭제해야하는 프로그램을 작성하고 있습니다. 나는 위에서 언급 한 질문을 한 사람과 똑같은 문제를 겪고 있습니다. 자바는 파일을 지우지 않을 것이고 이유를 알 수 없습니다.
코드 : 그것은 어떤 throw 가능 객체, 오류 또는 예외를 던지는되지
File f = null;
FileWriter fw = null;
try
{
f = new File("myFile.txt");
fw = new FileWriter(f);
fw.write("This is a sentence that should appear in the file.");
fw.flush();
if(f.delete())
System.out.println("File was successfully deleted.");
else
System.err.println("File was not deleted.");
}
catch(Exception exc)
{
System.err.println(exc.getMessage());
}
catch(Error er {
System.err.println(er.getMessage());
}
catch(Throwable t)
{
System.err.println(t.getMessage());
}
finally
{
fw.close();
}
(내가 어떤 모든 가장자리 경우를 배제하기 위해 사람들을 포함). 두 번째 print 문 ("File was not deleted."
)이 콘솔에 인쇄되고 있습니다. 저는 Windows 7에서이 프로그램을 실행하고 있는데 전체 권한 (rwx)이있는 폴더에 쓰고 있습니다.
내가 조회 한 질문에 사용자는 자신의 질문에 답변했지만, 그렇게 겸손한 의견으로는 그렇게 간단하지 않습니다. 어쨌든, 나는 그것을 이해하는 데 어려움을 겪고 있습니다. 그/그녀는 BufferedReader
을 사용하여 FileInputStream
을 사용하는 것이 그/그녀의 차이를 만든다는 사실을 암시하는 것 같지만, 어떻게 적용되는지는 알 수 없습니다.
자바 7은 java.nio.file.Files
클래스의 도입으로이 문제를 해결 한 것으로 보입니다. 그러나 자바 컨트롤을 사용할 수없는 이유로 자바 7을 사용할 수 없습니다.
이 질문에 대한 다른 답변자는 이것이 Java의 "버그"이며 명시 적으로 System.gc()
등의 호출과 같은 모든 종류의 우회를 제공한다는 것을 암시합니다.이 모든 것을 시도했지만 작동하지 않습니다.
어쩌면 누군가 새로운 관점을 추가하고 나를 생각할 수 있습니다.
나는 이것이 중복이라고 생각하지 않습니다. 다른 질문에서 제시된 해결책을 시도했지만 도움이되지 않았기 때문에 그 원인이 다를 수 있습니다. – finnw
먼저 닫습니다. 그리고 ... "Java 6를 사용하여 붙어 있습니까?" JDK7에서 실행되는 단일 회사를 모르겠습니다. 나는 1.4와 1.5에 많은 것을 안다. 행운을 비네. –
당신이 말한 것을 반대하십시오 : BufferedReader 대신 FileInputStream을 사용하면 다른 게시물의 사용자에게 효과적입니다. 왜 그것이 적용되는지에 관해서는, 거기에있는 어떤 의견은 Java에서 그것의 버그를 제안합니다. –