Tôi đang cố gắng sử dụng Dòng đầu ra của tệp
Xóa tệp sau khi ghi nội dung vào đó. Đây là đoạn mã tôi dùng để viết:
private void writeContent(Tệp file, String fileContent) {
FileOutputStream tới;
thử {
đến = new FileOutputStream(tệp);
để.write(fileContent.getBytes());
để.xả();
để.đóng();
} bắt (FileNotFoundException e) {
// TODO Khối catch được tạo tự động
e.printStackTrace();
} bắt (IOException e) {
// TODO Khối catch được tạo tự động
e.printStackTrace();
}
}
Như có thể thấy, tôi xóa và đóng luồng, nhưng khi tôi cố xóa,file.xóa()
Trả về giá trị sai.
Tôi đã kiểm tra xem tệp có tồn tại hay không trước khi xóa nó và:file.exists()
, file.canRead()
, file.canWrite()
,file.canExecute()
Cả hai đều trả về giá trị true. Sau khi gọi những phương pháp này, tôi đã thử file.xóa()
và trả về giá trị false.
Có điều gì tôi làm sai không?
Một lỗi khác trong Java. Tôi hiếm khi tìm thấy chúng và đây mới chỉ là lần thứ hai trong sự nghiệp 10 năm của tôi. Như những người khác đã đề cập, đây chính là giải pháp của tôi. Tôi cũng chưa sử dụng nó.Hệ thống.gc()
. Nhưng ở đây, theo tôi, điều này cực kỳ quan trọng. Kỳ quặc? Đúng!
Cuối cùng
{
thử
{
ghim theo();
trong = null;
ra ngoài. flush();
ra ngoài.đóng();
ra = null;
Hệ thống. gc();
}
bắt (IOException e)
{
logger.error(ví dụ.getMessage());
e.printStackTrace();
}
}
Liên quan đến java - file.delete() trả về false ngay cả khi file.exists(), file.canRead(), file.canWrite(), file.canExecute() đều trả về true, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/991489/
Tôi là một lập trình viên xuất sắc, rất giỏi!