Muszę określić OutputStream
interfejs API, którego używam, ale w rzeczywistości nie potrzebuję danych wyjściowych. Czy Java ma OutputStream
odpowiednik > /dev/null
?
java
outputstream
Brandon Yarbrough
źródło
źródło
źródło
OutputStream nullOutputStream = new OutputStream() { @Override public void write(int b) { } };
Java nie wydaje się, ale Apache Commons IO tak. Spójrz na następujące kwestie:
https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html
Mam nadzieję, że to pomoże.
źródło
To nie jest jeszcze wspomnieć, więc będę również dodać guawy „s ByteStreams . nullOutputStream () , ponieważ niektórzy wolą Guava niż Apache Commons IO lub mają go już w swoim projekcie.
Uwaga: jeśli używasz starszej wersji Guava (od 1.0 do 13.0), chcesz użyć com.google.io.NullOutputStream .
źródło
Ponowne skasowanie już udzielonych odpowiedzi -
Java nie ma
NullOutputStream
klasy. Można jednak toczyć własną rękęOutputStream
, że ignoruje wszelkie zapisane na nim dane - innymi słowywrite(int b)
,write(byte[] b)
iwrite(byte[] b, int off, int len)
będzie mieć pustych ciał metod. To właśnieNullOutputStream
robi klasa Common IO .źródło
Nie w standardowej bibliotece AFAIK, ale nie powinno być trudno ją utworzyć, zastępując zapis w OutputStream
źródło
Nie, ale jest to dość łatwe do wdrożenia.
Zobacz to pytanie „Jak usunąć System.out.println z bazy kodu”
A potem wystarczy:
Czy jakoś tak :)System.setOut (PrintStream)
źródło
Java 11 dodała OutputStream.nullOutputStream ()
źródło
W mieście pojawił się nowy chłopak, który zajmuje się tym jak marzenie, wystarczy kilka linijek kodu. Jego JDK 11 i nullWriter () zostały tam wprowadzone, które to załatwiają. Oto kod, który rozwiązuje ten sam stary problem, nowy sposób bez martwienia się o system operacyjny (OS).
Mam nadzieję, że to może komuś pomóc!
źródło
Uważam, że właśnie tego szukasz, szukałem tego samego: to jest do przekierowywania strumieni wyjściowych ze standardowego błędu, standardowo w obiektach ProcessBuilder.
źródło
ByteArrayOutputStream
jest tym, czego chcesz (zakładając, że API będzie wyświetlało tekst). Po prostu utwórz nową instancję.źródło