Tôi vừa gặp một số hành vi đặc biệt với getResourceAsInputStream mà tôi đã hy vọng một người nào đó có thể làm sáng tỏ.Tại sao getResourceAsStream với một chuỗi rỗng trả về một InputStream trống?
Chuyển phương thức này tên của tài nguyên không tồn tại trả về null, như tôi mong đợi. Tuy nhiên, truyền cho nó một chuỗi rỗng hoặc không gian thực sự trả về một InputStream hợp lệ với 0 byte trong đó. Chỉ các chuỗi rỗng hoặc không gian dường như làm điều này; khoảng trắng như "\ t" hoặc "\ n" sẽ dẫn đến một giá trị rỗng.
Hành vi này có dự định không? Nếu vậy, mục đích của nó là gì?
this.class.getResourceAsStream("no_such_resource"); // returns null
this.class.getResourceAsStream(""); // returns an InputStream
this.class.getResourceAsStream(" "); // returns an InputStream
this.class.getResourceAsStream("\t"); // returns null
Giải thích tuyệt vời! Cần lưu ý rằng đây là một điều không thích hợp của 'FileURLConnection' mà không được chia sẻ bởi' JarURLConnection'; chạy chính xác cùng một mã, nhưng với các lớp được đóng gói trong một cái lọ, sẽ không tạo ra một danh sách (theo các bài kiểm tra của tôi, ít nhất). –
Aha, điều đó có ý nghĩa! Cảm ơn lời giải thích. –