Я имею в виду, если мне нужно создать метод какой-то a: void setOutputStream(PrintStream stream)
. Таким образом, переменная stream
является выходным потоком, где я буду писать свои данные (который будет предпочтительно представлять собой переменную String
). Вопрос в том, как он будет динамически определять выходной поток и правильно записывать мои данные там, то есть для System.out он будет печатать данные на экране, для потока файлов он будет записывать мои данные в файл.Как установить выходной поток Java
ответ
Я думаю, что вы ищете java.lang.System#setOut(PrintStream stream) метод. Что в принципе позволяет вам переназначить программный вывод .
Вы можете создать базовую OutputStream
, который записывает в файл с помощью:
OutputStream out = new FileOutputStream(filename)
Вы можете создать PrintStream
от использования:
PrintStream stream = new PrintStream(out)
, и если я хочу, чтобы моя функция напечатать его на экране? как это сделать «динамично»? – Helgus
Я не понимаю «динамически» часть. Если вы хотите распечатать на экране, используйте «System.out», это объект «PrintStream». –
То, что вы хотите сделать, это называется Decorator шаблон , Вы можете просмотреть ответ 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)
Good Luck!
Я думаю, что что-то не так в вашем вопросе, дело в том, что сам PrintStream использует OutputStream, который передается ему при его создании, как вы можете видеть here. Итак, вы должны передать правильный PrintStream по методу, который записывается в ваш OutputStream. Я думаю, что вам просто нужно сделать такой метод, как:
PrintStream createPrintStream (OutputStream out, String (или то, что вы хотите));
, а затем передать возвращенный поток печати методу, который будет писать на нем.
Может быть, завод шаблон дизайна может помочь вам Factory Method Design Pattern
- 1. Входной поток Java быстрее, чем выходной поток
- 2. Закрытие ящика Java Выходной поток
- 3. Как «параметризовать» выходной поток?
- 4. Выходной поток JMF
- 5. Получить выходной поток Python
- 6. javax.imageio.IIOException: невозможно создать выходной поток! (В Java)
- 7. Java SSL Вход/Выходной поток не работает
- 8. Java перенаправлять входной и выходной поток
- 9. запись строки в выходной поток в java
- 10. Получить выходной поток из вызванного метода java
- 11. собирают выходной РДД как поток
- 12. Как заменить выходной поток HttpServletResponse?
- 13. Выходной поток на appengine
- 14. Как установить байт, на который указывает выходной поток?
- 15. Выходной поток между потоками
- 16. Bluetooth - выходной поток
- 17. cin ест выходной поток
- 18. как создать s.th. как выходной поток в функции в java?
- 19. Выходной поток экрана захвата
- 20. Выходной поток для отладки
- 21. Выходной поток над StringBuilder
- 22. PHP: закрыть выходной поток
- 23. калитки загрузить выходной поток
- 24. «Отключить» выходной поток
- 25. Как изменить выходной поток в C++?
- 26. Как вернуть выходной поток файла .xlsx
- 27. Получите выходной поток продолжительного процесса
- 28. JAVA SPRING MVC Изменить выходной поток перед отображением на странице
- 29. Как проверить, закрыт ли выходной поток сокета?
- 30. команды выходной линии локон поток
Я думаю, это то, что мне нужно. благодаря! – Helgus