GVKun编程网logo

使用System.out和PrintWriter写入控制台(system.out.write)

24

在这篇文章中,我们将为您详细介绍使用System.out和PrintWriter写入控制台的内容,并且讨论关于system.out.write的相关问题。此外,我们还会涉及一些关于console.wr

在这篇文章中,我们将为您详细介绍使用System.out和PrintWriter写入控制台的内容,并且讨论关于system.out.write的相关问题。此外,我们还会涉及一些关于console.writeline和System.out.println、FileWrite BufferedWriter和PrintWriter结合、Java EE中的JspWriter和PrintWriter之间的区别?、java – ObjectOutputStream和PrintWriter冲突的知识,以帮助您更全面地了解这个主题。

本文目录一览:

使用System.out和PrintWriter写入控制台(system.out.write)

使用System.out和PrintWriter写入控制台(system.out.write)

在阅读有关Java I / O的知识时,我意识到可以通过两种方式写入标准输出。

以下是同时使用这两种技术的代码段

import java.io.*;public class ConsoleIO {    public static void main(String[] args) {        System.out.println("Method 1");        PrintWriter writer = new PrintWriter(System.out);        writer.println("Method 2");        writer.flush();        writer.close();    }}

相对于其他使用,是否有任何性能优势?

答案1

小编典典

一个快速的Google透露了Coderanch上的一个线程很有用。

还有其他几种进行控制台编写的方法,但是除了编写更少的代码外,使用一种或另一种似乎没有真正的好处,而且创建新的PrintWriter对象最终会占用更多的内存。

PrintWriter不仅可以写入控制台中的内容,还可以写入其他源代码;例如,System.out.println仅写入控制台时,它可以写入HttpResponse。

console.writeline和System.out.println

console.writeline和System.out.println

console.writeline和之间的技术区别到底是什么System.out.println?我知道这会System.out.println写入标准输出,但这与控制台不同吗?

我不完全理解的文档进行console.writeline

FileWrite BufferedWriter和PrintWriter结合

FileWrite BufferedWriter和PrintWriter结合

好的,所以我正在学习I /
O,并且在其中一张幻灯片中找到了以下代码。有人可以解释一下为什么需要FileWrite,BufferedWriter和PrintWriter吗?我知道BufferedWriter将缓冲输出并将其全部放入,但是为什么他们要使用FileWriter和PrintWriter?他们在错误处理等方面做得差不多吗?

而且为什么他们传递bwPrintWriter

      FileWriter fw = new FileWriter (file);      BufferedWriter bw = new BufferedWriter (fw);      PrintWriter outFile = new PrintWriter (bw);

答案1

小编典典

大概他们之所以使用a是FileWriter因为他们想写入文件。双方BufferedWriterPrintWriter必须得到另一位作家写-
你需要 一些 最终目的地。

(我个人不喜欢,FileWriter因为它不允许您指定编码。我更喜欢使用FileOutputStream包裹在中OutputStreamWriter,但这是另一回事。)

BufferedWriter如您所说,它用于缓冲-尽管它不缓冲 所有 输出,但只是固定数量的输出(缓冲的大小)。它会向底层作者创建“
chunkier”写入。

至于-
well的用法PrintWriter,它公开了一些额外的方法,例如println。我个人不喜欢它,因为它会吞下异常(您必须使用进行显式检查checkError,但仍然无法提供详细信息,而且我认为我
从未 见过使用过它),但这又取决于您在做什么。该PrintWriter传递的BufferedWriter它的 目的地。

因此,您所显示的部分下面的代码可能PrintWriter会写入,将写入BufferedWriter,将(在其缓冲区已满,或者刷新或关闭时)写入FileWriter,进而将字符数据转换为磁盘上的字节。

Java EE中的JspWriter和PrintWriter之间的区别?

Java EE中的JspWriter和PrintWriter之间的区别?

为了你的“重复”的狂热分子,对这样的权利类似的问题在这里。所不同的是,我描绘了一个我无法理解其输出的生动示例。

JspWriter和PrintWriter的文档说有两个区别:
1. JspWriter可以引发异常,而PrintWriter不应这样做。 2.
JspWriter在幕后使用PrintWriter,但是由于默认情况下JSP页面被缓冲,因此PrintWriter直到the buffer is flushed-在JSP页面上下文中意味着什么才创建。我不确定我是否了解这最后一部分。考虑以下JSP页面:

<%@page import="java.io.PrintWriter"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JspWriter versus PrintWriter</title>
    </head>
    <body>
        <p>I should be row one.</p>
        <%
            out.println("<p>JspWriter said: I should be the second row.</p>");

            PrintWriter pw = response.getWriter();
            pw.println("<p>PrintWriter said: I should be the third row.</p>");
        %>
        <p>I should be the fourth row.</p>
    </body>
</html>

它产生以下输出:

PrintWriter said: I should be the third row.
I should be row one.
JspWriter said: I should be the second row.
I should be the fourth row.

如您所见,JspWriter会将他的字符串输出到我期望的浏览器中。但是PrintWriter在将所有其他字符串发送到浏览器之前先输出其字符串。如果我们检查发送到浏览器的源代码,则在DOCTYPE声明之前,将PrintWriter的字符串作为第一行发送。因此,在上面的示例中,究竟发生了什么?

java – ObjectOutputStream和PrintWriter冲突

java – ObjectOutputStream和PrintWriter冲突

我有服务器和客户端设置,这基本上是一个基本的文本电子邮件系统.我目前正在使用PrintWriter在服务器和客户端之间发送文本.我正在尝试创建一个基于附件的系统,为此我正在使用ObjectOutputStream.

private static PrintWriter output;
private static ObjectOutputStream outStream;

public ClientHandler(Socket socket) throws IOException
{
    client = socket;
    outStream = new ObjectOutputStream(client.getoutputStream());
    input = new Scanner(client.getInputStream());
    output = new PrintWriter(client.getoutputStream(),true);
}

我目前遇到的问题是,如果我尝试通过输出打印机发送文本,由于某种原因,额外的字符将被添加到发送的文本的开头,这意味着程序无法识别通过打印机传递给客户端的关键字.如果我注释掉outStream对象的创建,问题就会停止.

谁能给我任何建议来尝试解决这个冲突问题?

最佳答案
这个额外的文本来自对象输出流.

将ObjectOutputStream和PrintStream附加到同一输出流基本上是永远不会起作用的.您必须提出使用1或其他的解决方案.要仅使用PrintStream,您可以考虑将对象转换为JSON或XML.另一方面,您可以使用ObjectOutputStream并将您的字符串写入ObjectOutputStream

关于使用System.out和PrintWriter写入控制台system.out.write的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于console.writeline和System.out.println、FileWrite BufferedWriter和PrintWriter结合、Java EE中的JspWriter和PrintWriter之间的区别?、java – ObjectOutputStream和PrintWriter冲突的相关信息,请在本站寻找。

本文标签: