我刚刚遇到了 getResourceAsInputStream 的一些特殊行为,我希望有人能对此有所了解。
传递这个方法,一个不存在的资源的名称返回 null,就像我期望的那样。但是,将空字符串或空格填充的字符串传递给它实际上会返回一个有效的 InputStream,其中包含零字节。似乎只有空的或充满空格的字符串才能做到这一点。像“\t”或“\n”这样的空格将导致空值。
这是预期的行为吗?如果是这样,它的目的是什么?
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