Tôi biết rằng câu hỏi này là bản sao hoành hành của câu hỏi this. Tuy nhiên, bây giờ tôi đã đọc toàn bộ trang đó hai lần và một số phần 3 lần và đối với cuộc sống của tôi, tôi không thấy cách/nơi nó được trả lời!Xóa tập tin Java 6
Vì vậy, về vấn đề của tôi.
Tôi đang ở nơi làm việc và bị kẹt khi sử dụng Java 6 SE và không thể nâng cấp lên 7. Tôi đang viết chương trình tạo tệp, viết, xử lý và sau đó cần xóa tệp đó. Tôi gặp vấn đề chính xác giống như người đã hỏi câu hỏi tôi tham khảo ở trên: Java sẽ không xóa tệp và tôi không thể hiểu tại sao.
Mã:
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();
}
Nó không phải là ném bất kỳ throwables, lỗi hoặc ngoại lệ (I bao gồm những để loại trừ bất kỳ trường hợp và tất cả các cạnh). Câu lệnh in thứ hai ("File was not deleted."
) đang được in trên bảng điều khiển. Tôi đang chạy này trên Windows 7 và đang viết thư mục vào một thư mục mà tôi có quyền đầy đủ (rwx).
Người dùng đặt câu hỏi mà tôi tham chiếu đã trả lời câu hỏi của riêng mình, nhưng làm như vậy (theo ý kiến khiêm tốn của tôi) theo cách không thẳng thắn. Trong mọi trường hợp, tôi gặp khó khăn trong việc hiểu nó. Anh/cô ấy dường như ám chỉ đến việc sử dụng một số BufferedReader
trái ngược với một số FileInputStream
tạo sự khác biệt cho anh ta/cô ấy, nhưng tôi không thấy cách áp dụng.
Java 7 dường như đã khắc phục sự cố này khi giới thiệu lớp học java.nio.file.Files
, nhưng một lần nữa, tôi không thể sử dụng Java 7 vì các lý do nằm ngoài phạm vi kiểm soát của mình.
Câu trả lời khác cho câu hỏi được tham chiếu đó ám chỉ rằng đây là "lỗi" trong Java và cung cấp tất cả các loại vi phạm, chẳng hạn như gọi rõ ràng System.gc()
, v.v. Tôi đã thử tất cả những điều này và chúng không hoạt động.
Có thể ai đó có thể thêm phối cảnh mới và chạy một số suy nghĩ cho tôi.
Tôi không cho rằng đây là bản sao. Khi bạn đã thử các giải pháp được đề xuất từ câu hỏi khác và họ không giúp đỡ, có khả năng nguyên nhân là khác nhau. – finnw
Đóng nó trước. Và ... "bị mắc kẹt khi sử dụng Java 6?" Tôi không biết một công ty nào đang chạy trên JDK7. Tôi biết nhiều người trên 1,4 và 1,5. Tự coi mình là may mắn. –
xin lưu ý những gì bạn nói là ngược lại: bằng cách sử dụng FileInputStream thay vì BufferedReader là những gì làm việc cho người dùng trong bài viết khác. Đối với lý do tại sao nó được áp dụng, một số bình luận ở đó cho thấy một lỗi của nó trong Java. –