Tôi đã chờ đợi đoạn mã sau để ném một ngoại lệ khi tôi goto ghi dữ liệu vào Luồng:Java BufferedWriter, OutputStreamWriter thể viết thư cho FileOutputStream kín
File file = new File("test.txt");
FileOutputStream fs = new FileOutputStream(file);
OutputStreamWriter ow = new OutputStreamWriter(fs);
BufferedWriter writer = new BufferedWriter(ow);
fs.close();
try {
ow.write(65);
writer.write("test");
} catch (Exception e) {
e.printStackTrace();
}
Tôi nhận ra rằng tôi nên đóng BufferedWriter, nhưng trong môi trường hiện tại của tôi, nó có thể có thể cho FileOutputStream được đóng trước khi BufferedWriter được đóng lại. Không nên FileOutputStream được ném một IOException mà nên di chuyển lên chuỗi cho đến khi nó chạm vào khối try/catch của tôi và in dấu vết stack?
Nếu tôi cố gắng gọi fs.write (65), thì nó sẽ ném một ngoại lệ.
Cảm ơn! Không thể tin rằng tôi đã không thử điều đó, Bài kiểm tra đơn vị khiến tôi tập trung, đôi khi tôi bỏ lỡ điều hiển nhiên. – craineum
Tại sao nó không ném một ngoại lệ tại 'ow.write (65)', mặc dù? OutputStreamWriter không được đệm. –
Nếu bạn đọc javadoc cho OutputStreamWriter (phần giới thiệu), bạn thấy rằng nó cũng được đệm. –