java
이 자습서에서는 예제를 통해 Java InputStreamReader 및 해당 메서드에 대해 알아봅니다.
InputStreamReader
java.io
클래스 패키지를 사용하여 바이트 데이터를 문자 데이터로 변환할 수 있습니다.
추상 클래스 Reader
을 확장합니다. .
InputStreamReader
클래스는 다른 입력 스트림과 함께 작동합니다. 바이트 스트림과 문자 스트림 간의 브리지라고도 합니다. InputStreamReader
때문입니다. 입력 스트림에서 바이트를 문자로 읽습니다.
예를 들어, 일부 문자는 저장소에 저장하기 위해 2바이트가 필요했습니다. 이러한 데이터를 읽기 위해 2바이트를 함께 읽고 해당 문자로 변환하는 입력 스트림 판독기를 사용할 수 있습니다.
<시간>
InputStreamReader
을 생성하려면 , java.io.InputStreamReader
을 가져와야 합니다. 먼저 패키지. 여기에서 패키지를 가져오면 입력 스트림 리더를 만드는 방법이 나와 있습니다.
// Creates an InputStream
FileInputStream file = new FileInputStream(String path);
// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);
위의 예에서는 InputStreamReader
을 생성했습니다. 명명된 입력 FileInputStream
과 함께 명명된 파일 .
여기에서 파일의 데이터는 일부 기본 문자 인코딩을 사용하여 저장됩니다.
그러나 문자 인코딩 유형(UTF8 또는 UTF16 ) 파일에도 있습니다.
// Creates an InputStreamReader specifying the character encoding
InputStreamReader input = new InputStreamReader(file, Charset cs);
여기서는 Charset
을 사용했습니다. 파일의 문자 인코딩을 지정하는 클래스입니다.
InputStreamReader
클래스는 Reader
에 있는 다양한 메서드에 대한 구현을 제공합니다. 수업.
read()
- 독자로부터 단일 문자를 읽습니다.read(char[] array)
- 리더에서 문자를 읽고 지정된 배열에 저장합니다.read(char[] array, int start, int length)
- length와 같은 문자 수를 읽습니다. 리더에서 start부터 시작하여 지정된 배열에 저장
예를 들어 input.txt라는 파일이 있다고 가정해 보겠습니다. 다음 내용으로.
This is a line of text inside the file.
InputStreamReader
을 사용하여 이 파일을 읽어봅시다. .
import java.io.InputStreamReader;
import java.io.FileInputStream;
class Main {
public static void main(String[] args) {
// Creates an array of character
char[] array = new char[100];
try {
// Creates a FileInputStream
FileInputStream file = new FileInputStream("input.txt");
// Creates an InputStreamReader
InputStreamReader input = new InputStreamReader(file);
// Reads characters from the file
input.read(array);
System.out.println("Data in the stream:");
System.out.println(array);
// Closes the reader
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
출력
Data in the stream: This is a line of text inside the file.
위의 예에서는 파일 입력 스트림을 사용하여 입력 스트림 판독기를 만들었습니다. 입력 스트림 리더는 input.txt 파일과 연결됩니다. .
FileInputStream file = new FileInputStream("input.txt");
InputStreamReader input = new InputStreamReader(file);
파일에서 문자를 읽기 위해 read()
를 사용했습니다. 방법.
getEncoding()
메소드를 사용하여 입력 스트림에 데이터를 저장하는 데 사용되는 인코딩 유형을 가져올 수 있습니다. 예를 들어,
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.io.FileInputStream;
class Main {
public static void main(String[] args) {
try {
// Creates a FileInputStream
FileInputStream file = new FileInputStream("input.txt");
// Creates an InputStreamReader with default encoding
InputStreamReader input1 = new InputStreamReader(file);
// Creates an InputStreamReader specifying the encoding
InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8"));
// Returns the character encoding of the input stream
System.out.println("Character encoding of input1: " + input1.getEncoding());
System.out.println("Character encoding of input2: " + input2.getEncoding());
// Closes the reader
input1.close();
input2.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
출력
The character encoding of input1: Cp1252 The character encoding of input2: UTF8
위의 예에서 input1이라는 2개의 입력 스트림 리더를 만들었습니다. 및 입력2 .
getEncoding()
메소드는 기본 문자 인코딩의 표준 이름을 반환합니다.getEncoding()
메서드는 지정된 문자 인코딩을 반환합니다.
참고 :Charset.forName()
을 사용했습니다. 문자 인코딩 유형을 지정하는 방법입니다. 자세한 내용은 Java Charset(공식 Java 설명서)을 참조하십시오.
입력 스트림 리더를 닫으려면 close()
을 사용할 수 있습니다. 방법. close()
메소드가 호출되면 리더를 사용하여 데이터를 읽을 수 없습니다.
메소드 | 설명 |
---|---|
ready() | 스트림을 읽을 준비가 되었는지 확인 |
mark() | 스트림에서 데이터를 읽은 위치 표시 |
reset() | 표시가 설정된 스트림의 지점으로 컨트롤을 반환합니다. |
자세한 내용은 Java InputStreamReader(공식 Java 설명서)를 참조하십시오.
java
자바 PrintStream 클래스 이 자습서에서는 예제를 통해 Java PrintStream 클래스와 해당 print() 및 printf() 메서드에 대해 배웁니다. PrintStream java.io 클래스 패키지는 바이트 대신 일반적으로 읽을 수 있는 형식(텍스트)으로 출력 데이터를 쓰는 데 사용할 수 있습니다. 추상 클래스 OutputStream를 확장합니다. . PrintStream 작업 다른 출력 스트림과 달리 PrintStream 기본 데이터(정수, 문자)를 바이트 대신 텍스트 형식으로 변환합니다. 그런 다음
자바 리더 클래스 이 자습서에서는 예제를 통해 Java Reader, 하위 클래스 및 메서드에 대해 알아봅니다. Reader java.io 클래스 패키지는 문자 스트림을 나타내는 추상 슈퍼클래스입니다. Reader 이후 추상 클래스이므로 그 자체로는 유용하지 않습니다. 그러나 하위 클래스를 사용하여 데이터를 읽을 수 있습니다. 리더의 하위 클래스 Reader의 기능을 사용하려면 , 우리는 그 하위 클래스를 사용할 수 있습니다. 그 중 일부는 다음과 같습니다. BufferedReader InputStreamReader 파일