2014-07-09 6 views
1

내가 자바를 배우기 시작하고이 코드가 작동하지 않는 이유를 나는 이해하지 못했다 :OutputStream 클래스의 write() 메서드가 콘솔에서 작동하지 않는 이유는 무엇입니까?

import java.io.*; 

public class Principal 
{ 
    public static void main (String args[]) throws IOException 
    { 
     OutputStream outConsole = System.out; 

     outConsole.write(101); 
    } 
} 

System.out에의 PrintStream 목적은 의 PrintStream의 서브 클래스 OutputStream. OutputStream은 추상 클래스이고 write()은 추상 메서드입니다. 그래서 PrintStream 구현 된 쓰기 메서드가 있어야합니다, 왜이 코드가 작동하지 않는 것 같아요?

답변

4

PrintStream#write(int)은 모든 조건에서 스트림을 자동으로 비 웁니다. javadoc 상태

지정된 스트림을이 스트림에 기록합니다. 바이트가 줄 바꿈이고 자동 비우기가 활성화 된 경우 flush 메서드가 호출됩니다. 다른 경우

, 당신은 이렇게 명시 적으로

outConsole.flush(); 
1

System.out에이 line buffered하는 PrintSteam이다 할 필요가있다. 플러시하십시오.

outConsole.flush(); 
관련 문제