본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

PrintStream 다양한 형태로 출력하다 PrintStream() checkError() print() println() printf() 포맷지정자

JDK1.1부터 PrintStream보다 향상된 PrintWriter가 추가되었으나

자주사용되는 System.out에 의해 둘다 사용할수밖에 없음.

둘은 거의 같은 기능이나, 다양한언어의 문자를 처리할때는 가능하면 PrintWriter를 사용하는것이 좋다.

 

 

PrintStream(File file)
지정된 파일에 데이터를 출력하기 위한 `PrintStream`을 생성한다.

     try {
         PrintStream ps = new PrintStream(new File("output.txt"));
         ps.println("Hello, World!");
         ps.close();
     } catch (FileNotFoundException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "Hello, World!" 문자열이 파일에 쓰여집니다.

 

 

PrintStream(File file, String csn)
지정된 파일에 데이터를 출력하고, 지정된 문자 세트를 사용하여 출력하는 `PrintStream`을 생성한다.

     try {
         PrintStream ps = new PrintStream(new File("output.txt"), "UTF-8");
         ps.println("안녕하세요");
         ps.close();
     } catch (UnsupportedEncodingException | FileNotFoundException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "안녕하세요" 문자열이 UTF-8 인코딩으로 파일에 쓰여집니다.


    

PrintStream(OutputStream out)
지정된 출력 스트림으로 데이터를 출력하기 위한 `PrintStream`을 생성한다.

     try {
         FileOutputStream fos = new FileOutputStream("output.txt");
         PrintStream ps = new PrintStream(fos);
         ps.println("Hello, World!");
         ps.close();
     } catch (FileNotFoundException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "Hello, World!" 문자열이 파일에 쓰여집니다.

 

 

 

PrintStream(OutputStream out, boolean autoFlush)
지정된 출력 스트림으로 데이터를 출력하고, 자동 플러시 기능을 선택하여 `PrintStream`을 생성한다.

     try {
         FileOutputStream fos = new FileOutputStream("output.txt");
         PrintStream ps = new PrintStream(fos, true);
         ps.println("Hello, World!");
     } catch (FileNotFoundException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "Hello, World!" 문자열이 파일에 쓰여진다.

https://standout.tistory.com/1483

 

자동 플러시 auto flush, 버퍼가 가득차거나 출력시 전송한다

활성화시 버퍼가 가득 차거나 개행 문자가 출력될 때마다 버퍼를 비우고 데이터를 목적지로 전송한다. 데이터가 실시간으로 출력되므로, 중요한 데이터를 놓치지 않고 즉시 확인할 수 있으나

standout.tistory.com

 

 

PrintStream(OutputStream out, boolean autoFlush, String encoding)
주어진 출력 스트림으로 출력하는 새 `PrintStream`을 생성하고, 

자동 플러시 기능을 선택하며, 지정된 문자 세트를 사용한다.

     try {
         FileOutputStream fos = new FileOutputStream("output.txt");
         PrintStream ps = new PrintStream(fos, true, "UTF-8");
         ps.println("안녕하세요");
     } catch (FileNotFoundException | UnsupportedEncodingException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "안녕하세요" 문자열이 UTF-8 인코딩으로 파일에 쓰여진다.

 

 

PrintStream(String fileName)
주어진 파일 이름에 출력하는 새 `PrintStream`을 생성한다.

 try {
         PrintStream ps = new PrintStream("output.txt");
         ps.println("Hello, World!");
         ps.close();
     } catch (FileNotFoundException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "Hello, World!" 문자열이 파일에 쓰여진다.

 

 

 

 

 

 

PrintStream(String fileName, String csn)
지정된 파일에 데이터를 출력하고, 지정된 문자 세트를 사용하여 출력하는 `PrintStream`을 생성한다.

try {
         PrintStream ps = new PrintStream("output.txt", "UTF-8");
         ps.println("안녕하세요");
         ps.close();
     } catch (UnsupportedEncodingException | FileNotFoundException e) {
         e.printStackTrace();
     }
     
[출력 결과]
"output.txt" 파일이 생성되고, "안녕하세요" 문자열이 UTF-8 인코딩으로 파일에 쓰여진다.

 

 

 

boolean checkError()

PrintStream의 오류 상태를 확인한다.

public class PrintStreamExample {
    public static void main(String[] args) {
        try {
            // 파일에 데이터를 출력하는 PrintStream 생성
            PrintStream printStream = new PrintStream(new FileOutputStream("output.txt"));

            // 데이터 출력
            printStream.println("Hello, world!");

            // 오류 상태 확인
            boolean error = printStream.checkError();
            if (error) {
                System.out.println("스트림에서 오류가 발생했습니다.");
            } else {
                System.out.println("스트림에서 오류가 발생하지 않았습니다.");
            }

            // 스트림 닫기
            printStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
[예시 코드]
만약 오류가 발생하지 않았다면 "스트림에서 오류가 발생하지 않았습니다."를 출력하고, 
오류가 발생했다면 "스트림에서 오류가 발생했습니다."를 출력한다.

 

 

 

print() 출력
println() 줄바꿈출력

 

void print(boolean b) / void println(boolean b) 

public class PrintExample {
    public static void main(String[] args) {
        boolean value = true;
        
        // print 메서드 사용
        System.out.print("Value: ");
        System.out.print(value);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Value: " + value);
    }
}

[출력 결과]
Value: true
Value: true

 

 


void print(char c) / void println(char c)

public class PrintExample {
    public static void main(String[] args) {
        char character = 'A';
        
        // print 메서드 사용
        System.out.print("Character: ");
        System.out.print(character);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Character: " + character);
    }
}

[출력 결과]
Character: A
Character: A

 

 


void print(char[] c) / void println(char[] c)

public class PrintExample {
    public static void main(String[] args) {
        char[] characters = {'A', 'B', 'C'};
        
        // print 메서드 사용
        System.out.print("Characters: ");
        System.out.print(characters);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Characters: " + characters);
    }
}

[출력 결과]
Characters: ABC
Characters: [C@6d06d69c

 

 


void print(double d) / void println(double d)

public class PrintExample {
    public static void main(String[] args) {
        double number = 3.14;
        
        // print 메서드 사용
        System.out.print("Number: ");
        System.out.print(number);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Number: " + number);
    }
}

[출력 결과]
Number: 3.14
Number: 3.14

 


void print(float f) / void println(float f)

public class PrintExample {
    public static void main(String[] args) {
        float number = 2.71828f;
        
        // print 메서드 사용
        System.out.print("Number: ");
        System.out.print(number);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Number: " + number);
    }
}

[출력 결과]
Number: 2.71828
Number: 2.71828

 

 


void print(int i) / void println(int i)

public class PrintExample {
    public static void main(String[] args) {
        int number = 123;
        
        // print 메서드 사용
        System.out.print("Number: ");
        System.out.print(number);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Number: " + number);
    }
}

[출력 결과]
Number: 123
Number: 123

 

 


void print(long l) / void println(long l)

public class PrintExample {
    public static void main(String[] args) {
        long number = 789L;
        
        // print 메서드 사용
        System.out.print("Number: ");
        System.out.print(number);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Number: " + number);
    }
}

[출력 결과]
Number: 789
Number: 789

 

 


void print(Object o) / void println(Object o)

public class PrintExample {
    public static void main(String[] args) {
        Object obj = new Object();
        
        // print 메서드 사용
        System.out.print("Object: ");
        System.out.print(obj);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Object: " + obj);
    }
}

[출력 결과]
Object: java.lang.Object@2d98a335
Object: java.lang.Object@2d98a335

 

 


void print(String s) / void println(String s)

public class PrintExample {
    public static void main(String[] args) {
        String message = "Hello, world!";
        
        // print 메서드 사용
        System.out.print("Message: ");
        System.out.print(message);
        
        // println 메서드 사용
        System.out.println(); // 줄 바꿈
        System.out.println("Message: " + message);
    }
}

[출력 결과]
Message: Hello, world!
Message: Hello, world!

 

 

printf()

주어진 포맷지정자에 따라 출력한다.

 

%d decimal integer

%o octal integer

%x hexadecimal integer

%c char

%s string

%5d 5자리 숫자, 빈자리는 공백, 오른쪽정렬

%-5d 5자리숫자, 빈자리는 공백, 왼쪽정렬

%05d 5자리숫자, 빈자리는 0으로 채움



public class PrintfExample {
    public static void main(String[] args) {
        int decimal = 123;
        int octal = 123;
        int hexadecimal = 123;
        char character = 'A';
        String message = "Hello, world!";
        
        // %d: decimal integer
        System.out.printf("Decimal: %d\n", decimal);
        
        // %o: octal integer
        System.out.printf("Octal: %o\n", octal);
        
        // %x: hexadecimal integer
        System.out.printf("Hexadecimal: %x\n", hexadecimal);
        
        // %c: char
        System.out.printf("Character: %c\n", character);
        
        // %s: string
        System.out.printf("Message: %s\n", message);
        
        // %5d: 5자리 숫자, 빈자리는 공백, 오른쪽 정렬
        System.out.printf("Decimal (5자리, 오른쪽 정렬): %5d\n", decimal);
        
        // %-5d: 5자리 숫자, 빈자리는 공백, 왼쪽 정렬
        System.out.printf("Decimal (5자리, 왼쪽 정렬): %-5d\n", decimal);
        
        // %05d: 5자리 숫자, 빈자리는 0으로 채움
        System.out.printf("Decimal (5자리, 0으로 채움): %05d\n", decimal);
    }
}


[출력결과]
Decimal: 123
Octal: 173
Hexadecimal: 7b
Character: A
Message: Hello, world!
Decimal (5자리, 오른쪽 정렬):   123
Decimal (5자리, 왼쪽 정렬): 123  
Decimal (5자리, 0으로 채움): 00123

 

 

 

%s string
%5s 5자리문자열, 빈자리는 공백, 오른쪽정렬
%-5 5자리문자열, 빈자리는 공백, 왼쪽정렬

public class PrintfExample {
    public static void main(String[] args) {
        String message = "Hello";
        
        // %s: 문자열
        System.out.printf("Message: %s\n", message);
        
        // %5s: 5자리 문자열, 빈자리는 공백, 오른쪽 정렬
        System.out.printf("Message (5자리, 오른쪽 정렬): %5s\n", message);
        
        // %-5s: 5자리 문자열, 빈자리는 공백, 왼쪽 정렬
        System.out.printf("Message (5자리, 왼쪽 정렬): %-5s\n", message);
    }
}

[출력결과]
Message: Hello
Message (5자리, 오른쪽 정렬): Hello
Message (5자리, 왼쪽 정렬): Hello

 

 

 

 


%e exponent 지수형태
%f decimal float 10진수
%3.1f 자리수 최소 3자리.소수점이하1자리
%8.1f 자리수 최소 8자리.소수점이하1자리, 빈자리 공백, 오른쪽정렬
%08.1f 자리수 최소 8자리.소수점이하1자리, 빈자리 0, 왼쪽정렬
%-8.1f 자리수 최소 8자리.소수점이하1자리, 빈자리 공백, 왼쪽정렬

public class PrintfExample {
    public static void main(String[] args) {
        double number = 123.456;
        
        // %e: 지수 형태로 표현
        System.out.printf("Number (지수 형태): %e\n", number);
        
        // %f: 소수점 형태로 표현
        System.out.printf("Number (소수점 형태): %f\n", number);
        
        // %3.1f: 전체 3자리 숫자, 소수점 1자리까지 표현
        System.out.printf("Number (전체 3자리, 소수점 1자리): %3.1f\n", number);
        
        // %8.1f: 전체 8자리 숫자, 소수점 1자리까지 표현, 오른쪽 정렬
        System.out.printf("Number (전체 8자리, 소수점 1자리, 오른쪽 정렬): %8.1f\n", number);
        
        // %08.1f: 전체 8자리 숫자, 소수점 1자리까지 표현, 빈 자리는 0으로 채움
        System.out.printf("Number (전체 8자리, 소수점 1자리, 0으로 채움): %08.1f\n", number);
        
        // %-8.1f: 전체 8자리 숫자, 소수점 1자리까지 표현, 왼쪽 정렬
        System.out.printf("Number (전체 8자리, 소수점 1자리, 왼쪽 정렬): %-8.1f\n", number);
    }
}


[출력결과]
Number (지수 형태): 1.234560e+02
Number (소수점 형태): 123.456000
Number (전체 3자리, 소수점 1자리): 123.5
Number (전체 8자리, 소수점 1자리, 오른쪽 정렬):    123.5
Number (전체 8자리, 소수점 1자리, 0으로 채움): 00123.5
Number (전체 8자리, 소수점 1자리, 왼쪽 정렬): 123.5

 

 

 

 

/f tab

%n 줄바꿈

%% %

public class PrintfExample {
    public static void main(String[] args) {
        // /f: tab
        System.out.printf("Form feed: \f\n");

        // %n: 줄 바꿈
        System.out.printf("New line: %n");

        // %%: % 출력
        System.out.printf("Percentage: %%\n");

        // 탭 문자 출력
        System.out.printf("Tab character: \tHello\n");
    }
}

[출력결과]
Form feed: 
New line: 
Percentage: %
Tab character: 	Hello

 

 

 

%tR, %tH:%tM 24시간 시:분

%tT, %tH:%tM:%tS 24시간 시:분:초

%tD, %tm/%td/%ty 월/일/년

%tF, %tY-%tm-%td 년/월/일

import java.util.Date;

public class PrintfExample {
    public static void main(String[] args) {
        // 현재 날짜 및 시간
        Date currentDate = new Date();

        // %tR: 24시간 형식 (시:분)
        System.out.printf("Current time (24시간 형식): %tR\n", currentDate);

        // %tH:%tM: 24시간 형식 (시:분)
        System.out.printf("Current time (24시간 형식): %tH:%tM\n", currentDate, currentDate);

        // %tT: 24시간 형식 (시:분:초)
        System.out.printf("Current time (24시간 형식): %tT\n", currentDate);

        // %tH:%tM:%tS: 24시간 형식 (시:분:초)
        System.out.printf("Current time (24시간 형식): %tH:%tM:%tS\n", currentDate, currentDate, currentDate);

        // %tD: 날짜 형식 (월/일/년)
        System.out.printf("Current date (월/일/년): %tD\n", currentDate);

        // %tm/%td/%ty: 날짜 형식 (월/일/년)
        System.out.printf("Current date (월/일/년): %tm/%td/%ty\n", currentDate, currentDate, currentDate);

        // %tF: 날짜 형식 (년-월-일)
        System.out.printf("Current date (년-월-일): %tF\n", currentDate);

        // %tY-%tm-%td: 날짜 형식 (년-월-일)
        System.out.printf("Current date (년-월-일): %tY-%tm-%td\n", currentDate, currentDate, currentDate);
    }
}

[출력결과]
Current time (24시간 형식): 15:52
Current time (24시간 형식): 15:52
Current time (24시간 형식): 15:52:03
Current time (24시간 형식): 15:52:03
Current date (월/일/년): 10/08/22
Current date (월/일/년): 10/08/22
Current date (년-월-일): 2022-10-08
Current date (년-월-일): 2022-10-08