|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Для печати отчетов необходимо было сделать что-то типа. Код: java 1. 2. 3.
При этом тело отчота печатается в файл и дублируется на консоли чтоб девопс мог его видеть в реальном времени. К сожалению экземпляр System.out и класс java.io.PrintWriter - не близкие родственники. У них общее - это интерфейсы Appendable/Closable но это все не то. Там нет реализации форматной печати. И красивого решения у меня пока не получается. Как-бы вы сделали? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 16:28 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
mayton, String.format("%s",...) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 16:49 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
dimonz80, ммм мне придется дублировать вызовы? А я хотел нечто вроде списка стримов. И потом может еще slf4.Logger добавлю. Код: java 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 16:57 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Не очень понимаю, что за красивое решение. Я бы делал MultipleOutputStream, который все вызовы методов OutputStream'а раскидывает в два или более стреамов. Мне кажется, что System.out спокойно должен кастоваться к OutputStream. Соответственно: new PrintWriter( new MultipleOutputStream( System.out, new FileOutputStream("my_file") ), ) Извиняюсь, если написал чуш. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 16:58 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, OutputStream - это уровень битов и байтов. А PrintWriter - это как-бы следующий слой абстракций. Но я тоже об этом думал. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 17:01 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
mayton мне придется дублировать вызовы? в смысле дублировать? appendables.forEach(a -> a.append(String.format)) mayton И потом может еще slf4.Logger ну тогда нужно более высокий уровень абстракции - какой-то свой интерфейс и обертки вокруг Appendable и любых других вариантов. Либо я жесто туплю, либо задача вроде как элементарная. Leonid Kudryavtsev Мне кажется, что System.out спокойно должен кастоваться к OutputStream. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 17:04 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
mayton Leonid Kudryavtsev, OutputStream - это уровень битов и байтов. А PrintWriter - это как-бы следующий слой абстракций. Но я тоже об этом думал. Ну так оберни OutputStream в OutputStreamWriter по вкусу. Врят ли разные источники нужны в разных кодировках. Ну или сделать MultipleWriter наследующий от Writer. Вроде не сильно много методов переопределять https://docs.oracle.com/javase/7/docs/api/java/io/Writer.html ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 17:07 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6.
p.s. вроде в FileWriter нельзя кодепайдж передать, т.ч. если хочется указывать кодепайдж, все равно через OutputStream работать надо ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 17:13 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
или я жутко туплю и чего-то не понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 17:18 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
chpasha mayton мне придется дублировать вызовы? в смысле дублировать? appendables.forEach(a -> a.append(String.format)) Да. Я думаю так я и сделаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 17:45 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2020, 19:32 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Выдалось на работе свободное время, решил покодить на java ))) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2020, 15:53 |
|
Java :: вторничная классовая борьба с printf
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev @Override public void write(char[] chars, int i, int i1) throws IOException { for ( Writer w : writers ) { w.write( chars, i, i1 ); } } Напомнило код из Бобины: Код: java 1. 2. 3. 4. 5. 6. 7.
https://github.com/INFINITE-TECHNOLOGY/BOBBIN/blob/master/src/main/groovy/io/infinite/bobbin/Bobbin.groovy это я к чему- Mayton - используй Бобину для этого. https://i-t.io/website/#/Bobbin ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2020, 18:20 |
|
|
start [/forum/topic.php?fid=59&msg=39998904&tid=2120683]: |
0ms |
get settings: |
14ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
38ms |
get topic data: |
2ms |
get forum data: |
0ms |
get page messages: |
229ms |
get tp. blocked users: |
0ms |
others: | 279ms |
total: | 569ms |
0 / 0 |