我的意思是如果我要創建某種方法: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 EE輸入/輸出流
- 2. java輸入輸出流
- 3. Java ProcessBuilder:輸入/輸出流
- 4. 輸入/輸出流Java Servlets
- 5. 在java中將標準輸出流設置爲默認值
- 6. 如何設置輸出流指向的字節?
- 7. 如何在C++中爲lua設置錯誤輸出流
- 8. 升壓::輸入輸出流::流<提高::輸入輸出流:: array_source>不設置EOF
- 9. Java套接字輸出流
- 10. 輸出流中的Java
- 11. Java:寫入Scala輸出流
- 12. 設置XslCompiledTransform輸出設置
- 13. Java設置輸出空間的方式?
- 14. 如何設置打印輸出等於Java中的變量?
- 15. 重置標準輸出流
- 16. 配置Linux輸出流
- 17. 如何正確緩衝我的Java輸入/輸出/文件流?
- 18. Java通過流設置cookie
- 19. 快速Java輸入\輸出流
- 20. 帶輸入/輸出流的Java進程
- 21. Java的輸入輸出重定向流
- 22. Java中的多輸入/輸出流?
- 23. Java的自定義輸入輸出流
- 24. 如何設置xcodebuild的輸出目錄?
- 25. bwoken:如何設置輸出目錄
- 26. 如何在AT91bootstrap中設置GPIO輸出?
- 27. 如何將alasql輸出設置爲Array
- 28. 如何設置ASAN/UBSAN報告輸出
- 29. 如何設置NHibernate.Burrow流利?
- 30. 如何從輸出設備向輸入設備發送音頻流?
我想,這就是我需要的。謝謝! – Helgus 2012-02-27 14:28:42