在我的 servlet 中,我同时提供了 out.print
和 out.write
。但两者都在浏览器中打印。
这两者之间的确切区别是什么以及何时使用 out.print
和 out.write
?
最佳答案
简短的回答是 out.write()
如果你传递一个 null 就会爆炸:
String s = null;
out.print(s); // outputs the text "null"
out.write(s); // NullPointerException
更完整的答案是 servlet 中的 out
是 PrintWriter
其重载的 write()
方法只接受一些基本类型,但执行将字节输出到底层 OutputStream
的工作。
print()
方法是一种便捷的包装方法,它包装了对 write()
的调用,为其众多重载实现提供自定义行为。例如:
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
public void print(Object obj) {
write(String.valueOf(obj));
}
public void print(double d) {
write(String.valueOf(d));
}
等所有原始类型。
关于java - out.write() 和 out.print() 之间的确切区别是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18338134/