getResourceAsInputStream で奇妙な動作に出くわしました。誰かが光を当ててくれることを望んでいました。
このメソッドに存在しないリソースの名前を渡すと、予想どおり null が返されます。ただし、空の文字列またはスペースで満たされた文字列を渡すと、実際にはゼロバイトの有効な InputStream が返されます。空の文字列またはスペースで満たされた文字列のみがこれを行うようです。"\t" や "\n" などの空白は null になります。
これは意図した動作ですか? もしそうなら、その目的は何ですか?
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