当前位置: 首页 > 面试题库 >

使用System.out和PrintWriter写入控制台

步胜
2023-03-14
问题内容

在阅读有关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();
    }
}

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我从互联网上找到了下面的代码,可以正常工作,但是它没有将打印控制台写入omt.txt,它仅在第二个catch块之后写入语句。如果您运行该代码,则将理解我的意思。要做的就是将控制台上的所有内容写入“ omt.txt”文件中。 经过一番回答后,我发现我的问题不清楚,对此感到抱歉。我想将控制台输出保存到omt.txt文本文件。如果在控制台上打印了“ Hello 123”,它也应该在omt.t

  • 问题内容: 我正在编写一种自动提款机程序,该程序会将数据输出到文件中(是​​的,我知道它不是英语,但这不是重点),并且遇到了错误。 当我尝试使用它不起作用时,我不知道为什么。 for循环有效,但各行。这真的让我感到困惑!我已经尝试过)并且得到了,但这仍然无济于事。 有人可以解释我在做什么错吗? 问题答案: 为什么要在writeToFile调用中打开和关闭流?您不应该在for循环之前在writeFo

  • 问题内容: 有什么办法告诉log4j将其日志写入文件和控制台?谢谢,有我的财产: 问题答案: 您的root记录器定义有点混乱。请参阅log4j文档。 这是标准的Java属性文件,这意味着将行视为键=值对。您的第二行覆盖了第一行,这说明了为什么在附加程序上看不到任何内容。 您需要将两个定义合并为一个。您似乎想让消息进入控制台,消息进入文件。根记录器只能具有 一个 级别,因此您需要更改配置,以便附加程

  • 所以我有一个Laravel控制器: 目前,我正在使用artisan(在引擎盖下运行PHP的内置开发Web服务器)运行应用程序: 我想将控制台消息记录到artisan进程的管道中。

  • 问题内容: 由于某种原因,我的String部分由PrintWriter编写。结果,我的文件中出现了部分文本。方法如下: 在将文本打印到控制台的地方,我可以看到数据全部存在,没有任何丢失,但是当PrintWriter完成工作时,显然文本的一部分丢失了……我一无所知。 问题答案: 在丢弃打开的流之前,应始终保留流。这将释放一些相当昂贵的系统资源,当您在文件系统上打开文件时,您的JVM必须获取这些资源。

  • 这两种流类型的代码如下所示: