我的意思是如果我要创建某种方法:void setOutputStream(PrintStream stream)
。 因此,stream
变量是一个输出流,我将写入我的数据(最好是String
变量)。 的问题是,如何将动态确定输出流,正确地写有我的数据,即对System.out的,它会在屏幕上打印数据,文件流它会我的数据写入到文件中。如何设置输出流Java
回答
我想你正在寻找java.lang.System#setOut(PrintStream stream)方法。这基本上可让您以编程方式重新分配标准输出流。
您可以创建,使用写入文件的基本OutputStream
:
PrintStream stream = new PrintStream(out)
,如果我想我的功能打印在屏幕上?如何做到“动态”? – Helgus 2012-02-27 14:18:07
我不明白“动态”部分。如果你想打印到屏幕上,那么使用'System.out',它是一个'PrintStream'对象。 – 2012-02-27 14:26:36
你想要做什么叫做Decorator模式:
OutputStream out = new FileOutputStream(filename)
然后,您可以从使用创建PrintStream
。你可能想回顾this的答案(和线程)。
看看下面的类层次(java.io. *流)
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)
祝您好运!
我认为你的问题出了点问题,重点在于PrintStream本身使用一个OutputStream,当你创建它的时候它会被传递给它,你可以看到here。 所以你必须在写入你的OutputStream的方法上传递正确的PrintStream。我认为,你只需要做像一个方法:
的PrintStream createPrintStream(OutputStream中出来,字符串(或你想要什么)型);
,然后返回的打印流传递至将其上写的方法。
也许是工厂设计模式可以帮助您Factory Method Design Pattern
- 1. java输入输出流
- 2. Java EE输入/输出流
- 3. Java ProcessBuilder:输入/输出流
- 4. Java:写入Scala输出流
- 5. Java 8无限流输出
- 6. 输出流中的Java
- 7. Java套接字输出流
- 8. 设置XslCompiledTransform输出设置
- 9. 配置Linux输出流
- 10. 重置标准输出流
- 11. 带输入/输出流的Java进程
- 12. Java的自定义输入输出流
- 13. Java的输入输出重定向流
- 14. 如何将alasql输出设置为Array
- 15. 如何设置xcodebuild的输出目录?
- 16. 如何设置ASAN/UBSAN报告输出
- 17. bwoken:如何设置输出目录
- 18. 如何设置NHibernate.Burrow流利?
- 19. 如何从输出设备向输入设备发送音频流?
- 20. Java/Android - 从输入流读取后写入输出流
- 21. 输出流缓冲输出流附加
- 22. java输入流
- 23. JAVA - 如何设置用户输入的输入范围验证
- 24. 如何创建s.th.像在java中的函数输出流?
- 25. 如何在Java中更改Saxon的标准错误输出流?
- 26. Java流 - 基于函数的输出如何筛选正确
- 27. javax.imageio.IIOException:无法创建输出流! (在Java)
- 28. Java 8流API控制输出
- 29. 流的Java标准输出到perl STDOUT
- 30. 如何清除java中的输入流
我想,这就是我需要的。谢谢! – Helgus 2012-02-27 14:28:42