java - out.write() 和 out.print() 之间的确切区别是什么

标签 java servlets printwriter

在我的 servlet 中,我同时提供了 out.printout.write。但两者都在浏览器中打印。

这两者之间的确切区别是什么以及何时使用 out.printout.write

最佳答案

简短的回答是 out.write() 如果你传递一个 null 就会爆炸:

String s = null;
out.print(s); // outputs the text "null"
out.write(s); // NullPointerException

更完整的答案是 servlet 中的 outPrintWriter其重载的 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/

相关文章:

java - 在android布局中显示多个cardview在另一个之上

java - 认证有效用户

java - 使用 @Configuration 注释 WebSecurityConfigurerAdapter 会导致配置被调用两次

java - 打印到文本文件

java - 使用 PrintWriter,我在浏览器中收到中文乱码

java - 在 Java 中插入 SQL 后访问自动递增标识字段

java - SonarQube:创建自定义规则以获取类中的自定义注释

java - 使用 javax.servlet 2.5 设置 httponly cookie

java - 如何将缓存的 gzipped html 页面返回到 http servlet 请求?

java - JApplet写入文本文件,destroy()/stop()