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
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
'JAVA' 카테고리의 다른 글
문자기반스트림 Writer의 메서드 append() close() flush() write() (0) | 2024.03.21 |
---|---|
문자기반스트림 Reader의 메서드 close() mark() markSupported() read() ready() skip() (0) | 2024.03.21 |
자동 플러시 auto flush, 버퍼가 가득차거나 출력시 전송한다 (0) | 2024.03.21 |
SequenceInputStream 두 개의 입력 스트림을 연결하다 (0) | 2024.03.21 |
DataOutputStream 8가지 기본 자료형의 단위로 쓰다 (0) | 2024.03.21 |