it-source

Java에 Null Output Stream이 있습니까?

criticalcode 2022. 11. 1. 00:00
반응형

Java에 Null Output Stream이 있습니까?

다음 명령어를 지정해야 합니다.OutputStream사용 중인 API에 대해서는 설명하지만 실제로는 출력이 필요하지 않습니다.Java에는OutputStream에 상당하는> /dev/null?

/**Writes to nowhere*/
public class NullOutputStream extends OutputStream {
  @Override
  public void write(int b) throws IOException {
  }
}

Java는 아닌 것처럼 보이지만 Apache Commons IO는 그렇다.다음 사항을 살펴보십시오.

https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/output/NullOutputStream.html

도움이 됐으면 좋겠다.

Java 11 이후 필요한 기능을 수행하는 스태틱 유틸리티는 다음과 같습니다.스태틱 팩토리 방식입니다.

모든 바이트를 폐기하는 새 OutputStream을 반환합니다.반환된 스트림은 처음에 열립니다.close() 메서드를 호출하여 스트림이 닫힙니다.close()에 대한 후속 호출은 효과가 없습니다.

아직 언급되지 않았기 때문에 GuavaByteStreams.nullOutputStream()도 추가합니다.Apache Commons IO보다 Guava를 선호하거나 이미 프로젝트에 포함되어 있을 수 있습니다.

주의: 구버전(1.0~13.0)을 사용하고 있는 경우는, com.google.io 를 사용합니다.Null Output Stream 입니다.

이미 제공된 답변을 재이용합니다.

Java에는 다음이 없습니다.NullOutputStream수업. 하지만 넌 네 스스로 굴릴 수 있어.OutputStream즉, 작성된 모든 데이터를 무시합니다.write(int b),write(byte[] b)그리고.write(byte[] b, int off, int len)메서드 본문이 비어 있습니다.이것이 공통 IO입니다.NullOutputStream클래스는 그렇습니다.

Java 11에서 OutputStream.nullOutputStream()추가되었습니다.

아니요, 하지만 구현은 꽤 쉽습니다.

이 질문은 "코드베이스에서 System.out.println을 삭제하는 방법"을 참조하십시오.

그리고 다음 작업을 수행합니다.

System.setOut( DevNull.out );

뭐 이런 거 :)

System.setOut(PrintStream)

마을에 새로 온 남자아이가 마법처럼 이 일을 처리해요. 몇 줄의 코드만 있으면 돼요.JDK 11nullWriter()가 도입되어 있습니다.운영체제(OS)에 대해 걱정하지 않고 동일한 오래된 문제, 새로운 방식으로 대처하기 위한 코드를 소개합니다.

String fileContent = "Welcome to StackOverflow readers !! Here goes the question link...";
Writer writer = Writer.nullWriter();
writer.write(fileContent);
writer.close();

이것이 누군가에게 도움이 되기를 바랍니다!

이게 당신이 찾고 있는 거라고 믿어요. 저도 같은 걸 찾고 있었어요.이는 ProcessBuilder 개체에 표준 출력된 표준 오류에서 출력 스트림을 리디렉션하기 위한 것입니다.

블록 따옴표

pb.redirectError( ProcessBuilder.Redirect.appendTo( new File( "NUL:" ) ) );

언급URL : https://stackoverflow.com/questions/691813/is-there-a-null-outputstream-in-java

반응형