본문 바로가기

언어/Java

프린트 스트림, System.in 예시

※ OutputStream은 바이트 출력 스트림의 최상위 클래스로 추상 클래스이다.

모든 바이트 출력 스트림 클래스는 이 OutputStream 클래스를 상속받아서 만들어진다.

 

※ PrintStream과 PrintWriter는 프린터와 유사하게 출력하는 print(), println(), printf() 메소드를 가지고 있는

보조 스트림이다. 콘솔에 출력할 때 System.out.println()을 사용한 이유가  out이 PrintStream 타입이기 때문이다.

 

 printf() 메소드 웹에서는 잘 사용안한다. 이건 형식화된 문자열을 출력한다. C언어의 개념

package ch18.sec09;

import java.io.FileOutputStream;
import java.io.PrintStream;

public class PrintStreamExample {
	public static void main(String[] args) throws Exception {
		FileOutputStream fos = new FileOutputStream("C:/Temp/printstream.txt");
		PrintStream ps = new PrintStream(fos);
		
        // d는 digit s는 string 문자열 포맷
		ps.printf("| %6d | %-10s | %10s | \n", 1, "홍길동", "도적");
        // %6d, 오른쪽부터 6자리를 확보해서 숫자 1을 표현해라
        // %-10s 홍길동이란 값을 s에 대입 -10 왼쪽부터 10자리에 홍길동을 채워라
        // %10s 오른쪽에서부터 10자리를 확보하고 도적을 채워라
		ps.printf("| %6d | %-10s | %10s | \n", 2, "감자바", "학생");
		
		ps.flush();
		ps.close();
	}
}
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SystemInTest {
	public static void main(String[] args) {
		InputStream is = System.in;
		
		try {
//			int readValue = is.read();
//			System.out.println(readValue);
			
			int readValue = -1;
			while((readValue = is.read()) != -1) {
				System.out.print(readValue);		// 13 10은 enter값
//				System.out.print((char)readValue);
			}	// windows의 스트림종료 ctrl+z
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

결과

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SystemInTest {
	public static void main(String[] args) {
		InputStream is = System.in;
		
		try {
//			int readValue = is.read();
//			System.out.println(readValue);
			
			int readValue = -1;
			while((readValue = is.read()) != -1) {
//				System.out.print(readValue);		// 13 10은 enter값
				System.out.print((char)readValue);
			}	// windows의 스트림종료 ctrl+z
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

결과

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class SystemInTest {
	public static void main(String[] args) {
		InputStream is = System.in;

		// InputStreamReader : InputStream -> Reader	
		InputStreamReader isr = new InputStreamReader(is);
		try {
			int readValue = -1;
			while((readValue = isr.read()) != -1) {
//			isr.read(); // 문자단위로 읽기
			System.out.print((char)readValue);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

결과

'언어 > Java' 카테고리의 다른 글

FileCopy 예제  (0) 2023.08.09
입출력 스트림 예시  (0) 2023.08.09
입출력 스트림(Stream)  (0) 2023.08.09
어노테이션(Annotation)  (0) 2023.08.08
날짜와 시간 클래스  (0) 2023.08.08