繁体   English   中英

如何设置输出流Java

[英]How to Set an Output Stream Java

我的意思是,如果我必须创建某种方法: void setOutputStream(PrintStream stream) 因此, stream变量是输出流,我将在其中写入数据(最好是String变量)。 问题是,它将如何动态确定输出流并将正确的数据写入那里,即对于System.out,它将在屏幕上打印数据,对于文件流,它将将我的数据写入文件。

我认为您正在寻找java.lang.System#setOut(PrintStream stream)方法。 从本质上讲,您可以通过编程方式重新分配标准输出流。

您要执行的操作称为装饰器模式。 您可能需要查看答案(和主题)。

查看以下类层次结构(java.io. * Stream)

java.lang.Object 
    java.io.Console (implements java.io.Flushable) 
    java.io.File (implements java.lang.Comparable<T>, java.io.Serializable) 
    java.io.FileDescriptor 
    java.io.InputStream (implements java.io.Closeable) 
            java.io.ByteArrayInputStream 
            java.io.FileInputStream 
            java.io.FilterInputStream 
                    java.io.BufferedInputStream 
                    java.io.DataInputStream (implements java.io.DataInput) 

祝好运!

您可以使用以下方法创建写到文件的基本OutputStream

OutputStream out = new FileOutputStream(filename)

然后,您可以使用以下方法从中创建一个PrintStream

PrintStream stream = new PrintStream(out)

我认为您的问题出了点问题,关键是PrintStream本身使用了在创建它时将传递给它的OutputStream,如您在此处看到的。 因此,您必须在OutputStream中写入的方法处传递正确的PrintStream。 我认为您只需要执行以下方法即可:

PrintStream createPrintStream(OutputStream out,String(或您想要的类型)类型);

然后将返回的打印流传递给将在上面写的方法。

也许工厂设计模式可以帮助您工厂方法设计模式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM