English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 가이드

Java 프로세스 제어

Java 배열

Java 상대형 객체(I)

Java 상대형 객체(II)

Java 상대형 객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력출력(I/O)

Java Reader/Writer

Java 다른 주제

Java PrintStream 클래스

이 튜토리얼에서는 예제를 통해 Java PrintStream 클래스 및 print()와 printf() 메서드를 배울 것입니다.

java.io 패키지의 PrintStream 클래스는 데이터를 바이트 대신 일반적으로 읽을 수 있는 형식(텍스트)으로 쓸 수 있습니다.

추상 클래스 OutputStream을 상속합니다.

PrintStream 소개

다른 출력 스트림과 달리, PrintStream은 원시 데이터(정수, 문자)를 텍스트 형식으로 변환한 후, 형식화된 데이터를 출력 스트림에 씁니다.

PrintStream 클래스는 어떤 입력도 던지지 않습니다/출력 예외. 대신, checkError() 메서드를 사용하여 그 중의 어떤 오류도 찾아야 합니다.

주의:PrintStream 클래스는 자동 씻기 기능도 갖추고 있습니다. 이는 다음 경우에 강제로 출력 스트림을 모든 데이터로 쓰도록 합니다:

  • 인쇄 스트림에 줄 바꿈 문자 \n이 써졌을 때

  • println() 메서드가 호출될 때

  • 인쇄 스트림에 바이트 배열을 썼을 때

PrintStream을 생성합니다

PrintStream을 생성하려면 먼저 java.io.PrintStream 패키지를 가져와야 합니다. 패키지를 가져온 후, 여기서 인쇄 스트림을 생성할 수 있습니다.

1. 다른 출력 스트림을 사용하여

//FileOutputStream을 생성합니다
FileOutputStream file = new FileOutputStream(String file);
//PrintStream을 생성합니다
PrintStream output = new PrintStream(file, autoFlush);

);

  • 지정된 파일에 형식화된 데이터를 쓰는 인쇄 스트림을 생성했습니다

  • autoFlush는 자동 씻기 여부를 지정하는 선택적 부울 파라미터입니다

2. 파일 이름을 사용하여

 //PrintStream을 생성합니다
PrintStream output = new PrintStream(String file, boolean autoFlush);

);

  • 지정된 파일에 형식화된 데이터를 쓰는 인쇄 스트림을 생성했습니다

  • autoFlush는 선택적 부울 파라미터로, 자동 씻기 여부를 지정합니다

주의:이 두 경우에도 PrintStream는 데이터를 파일에 쓸 때 일부 기본 문자编码를 사용합니다. 그러나, 우리는 문자编码을 지정할 수도 있습니다.UTF8또는 UTF16)。

//사용할 문자编码로 PrintStream를 생성합니다
PrintStream output = new PrintStream(String file, boolean autoFlush, Charset cs);

在这里,我们使用Charset该类来指定字符编码。

여기서는 Charset 클래스를 사용하여 문자编码을 지정합니다.

PrintStream 메서드

PrintStream 클래스는 데이터 출력을 인쇄할 수 있도록 여러 가지 메서드를 제공합니다.

  • print() 메서드 - print()

  • 지정된 데이터를 출력 스트림에 인쇄합니다 - println()

데이터와 마지막 줄 바꿈 문자를 출력 스트림에 인쇄합니다

class Main {
    public static void main(String[] args) {
        예제
        이 줄을 주목하세요
    }
}

String data = "Hello World.";

출력 결과

Hello World.

위의 예제에서는 출력 스트림을 생성하지 않았지만, PrintStream 클래스의 print() 메서드를 사용할 수 있습니다.

그렇다면 어떻게 이렇게 될 수 있을까요? 좋습니다, 저는 여기서 어떻게 일어나는지 설명해 드리겠습니다.

이 줄을 주목하세요

);

  • System.out.print(data);/System은 표준 입력을 담당합니다

  • 출력 작업의 최종 클래스

out은 System 클래스에서 선언된 PrintStream 타입의 클래스 변수입니다

지금, out이 PrintStream 타입이므로 PrintStream 클래스의 모든 메서드를 호출할 수 있습니다.

import java.io.PrintStream;
class Main {
    public static void main(String[] args) {
        예제: PrintStream 클래스의 print() 메서드
        try {
            PrintStream output = new PrintStream("output.txt");
            String data = "This is a text inside the file.";
            output.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

output.print(data);output.txt위의 예제에서는 output이라는 출력 스트림을 생성했습니다. 출력 스트림은

PrintStream output = new PrintStream("output.txt");

파일 링크.

여기서, 프로그램을 실행할 때,output.txt파일은 다음과 같은 내용으로 채워집니다.

데이터를 파일에 인쇄하려면 print() 메서드를 사용합니다.

This is a text inside the file.

printf() 메서드2printf() 메서드는 형식화된 문자열을 인쇄하는 데 사용됩니다. 그것은 다음을 포함하고 있습니다

매개변수: 형식화된 문자열과 매개변수. 예를 들어, 25printf("I %d years old",

);

  • 여기서 - I am %d years old

  • 이는 형식화된 문자열입니다

  • 25%d는 형식화된 문자열 내의 정수 데이터입니다

이는 매개변수입니다

따라서, 형식화된 문자열이 텍스트와 데이터를 포함하고 있으며, 매개변수는 형식화된 문자열 내의 데이터를 대체합니다.%d 대체로 25

예제: PrintStream의 printf() 메서드 사용

import java.io.PrintStream;
class Main {
    public static void main(String[] args) {
        try {
            PrintStream output = new PrintStream("output.txt");
            int age = 25;
            output.printf("저는 %d 세 살.", age);
            output.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

위의 예제에서, output이라는 출력 스트림을 생성했습니다. 출력 스트림은 파일과output.txt링크.

PrintStream output = new PrintStream("output.txt");

형식화된 텍스트를 파일에 출력하려면 printf() 메서드를 사용했습니다.

여기서, 프로그램을 실행할 때,output.txt파일은 다음과 같은 내용으로 채워집니다.

저는 25 세 살.

PrintStream의 다른 메서드

메서드내용 설명
close()프린트 스트림을 닫습니다
checkError()스트림에 오류가 있는지 확인하고 부울 결과를 반환합니다
append()지정된 데이터를 스트림에 추가합니다