자바에서 다중 상속을 가지고 있지 않고 스트림 둘 다 인터페이스 대신 추상 클래스이므로 Java에서 Pipe 객체를 만드는 데 좋은 제안이 있습니까?자바 입력 출력 스트림
답변
Javadoc은 "스레드를 교착 상태로 만들 수 있으므로 단일 스레드에서 두 객체를 모두 사용하려고 시도하는 것은 좋지 않습니다"라고 명시 적으로 설명합니다. 무슨 일이 일어나는가'PipedInputStream.read()'는 연결된'PipedOutputStream.write()'가 다른 스레드에서 호출 될 때까지 호출하는 스레드를 차단합니다. – Matthieu
당신은 모두 입력 -과 출력 - 스트림으로 사용하는 인스턴스가되지 않습니다. 대신에, 읽기 용으로 InputStream을 캡슐화 (즉, 구성)하고 쓰기 용으로 OutputStream을 사용하는 Pipe 객체를 가질 수 있습니다.
표준 API에 System.in
및 System.out
과 거의 같습니다. 기성품 구현
체크 Pipe 클래스 조금 걱정된다.
이 경우 입력 스트림과 출력 스트림이있는 클래스가 있습니다. 무엇이든 확장하거나 인터페이스를 사용할 필요가 없습니다.
이 작업을 수행하는 코드를 변경 한 후, 상속 대 구성에 대한이 문서 읽기 : ". '클래스 상속'을 통해 찬성 '개체 구성'" http://www.artima.com/lejava/articles/designprinciples4.html
이 여러 상속을하지 않아도 좋은 경우에, 당신이 그런 식으로 질문을한다는 사실을
- 1. 빠른 자바 입력 \ 출력 스트림
- 2. 자바 소켓 출력 스트림
- 3. 입/출력 스트림 자바 서블릿
- 4. 잘못된 스트림 헤더 : 47455420 - 자바 입력 스트림
- 5. 자바 입력 스트림 버퍼 객체?
- 6. 출력 스트림
- 7. 재설정 표준 출력 스트림
- 8. Java 6 파일 입력 출력 스트림 (동일 파일)
- 9. 자바 URL 연결 빈 입력 스트림
- 10. 입력 스트림 자바에서 html 읽기
- 11. PHP : 닫기 출력 스트림
- 12. JMF 출력 스트림
- 13. TCP 출력 스트림 오류
- 14. 콘솔 출력 스트림 유형
- 15. PHP의 출력 스트림 제어하기
- 16. 가짜 출력 스트림 유형
- 17. Android 블루투스 입력/출력 스트림 : 수신 된 ~ 1400 바이트, 1008
- 18. 일반 C 용 입력/출력 스트림 추상화 레이어
- 19. 자바 객체 스트림
- 20. 입력 스트림 디코딩
- 21. 입력 스트림 반복자 예외
- 22. 입력 스트림 압축 Java
- 23. 간단한 입력 스트림 구현하기
- 24. 소켓의 입력 스트림 재사용
- 25. 컴 포트 입력 스트림
- 26. 플러시 입력 스트림 : java
- 27. 다른 스레드의 동기화 출력 스트림
- 28. 자바 데이터 출력 스트림 더 많은 바이트 보내기
- 29. 더블 클릭 된 자바 jar 파일을 실행하는 동안 출력 스트림
- 30. JNI 인터페이스를 통한 출력 스트림 공유
어쩌면을 ... (Gang of Four 1995 : 20) – blank