English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 예제를 통해 Java OutputStreamWriter 및 메서드를 배웁니다.
java.io 패키지의 OutputStreamWriter 클래스는 문자 데이터를 바이트 데이터로 변환할 수 있습니다.
추상 클래스 Writer를 상속합니다.
OutputStreamWriter 클래스는 다른 출력 스트림과 함께 사용될 수 있습니다. 이는 OutputStreamWriter가 문자를 바이트로 변환하기 때문입니다. 이로 인해 이 클래스는 바이트 스트림과 문자 스트림 간의 다리로 불립니다.
예를 들어, 일부 문자는2바이트를 저장합니다. 이러한 데이터를 기록하려면, 문자를 해당 바이트로 변환하여 저장하는 출력 스트림 작성자를 사용할 수 있습니다.
OutputStreamWriter를 생성하기 위해 먼저 java.io.OutputStreamWriter 패키지를 가져와야 합니다. 패키지를 가져온 후, 여기서 출력 스트림 작성자를 생성할 수 있습니다.
//OutputStream을 생성합니다 FileOutputStream file = new FileOutputStream(String path); //创建一个OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file);
위의 예시에서는 output 이름의 OutputStreamWriter와 FileOutputStream 파일을 생성했습니다.
여기서는 기본 문자 인코딩을 사용하여 문자를 출력 스트림에 기록합니다.
하지만, 데이터를 기록하기 위한 문자 인코딩 유형을 지정할 수 있습니다 (UTF8또는UTF16)
//문자 인코딩을 지정하여 OutputStreamWriter를 생성합니다 OutputStreamWriter output = new OutputStreamWriter(file, Charset cs);
여기서는 Charset 클래스를 사용하여 문자 인코딩 유형을 지정합니다。
OutputStreamWriter 클래스는 Writer 클래스에서 등장하는 다양한 메서드를 구현합니다。
write() -작성자에 한 문자를 기록합니다
write(char[] array) - 지정된 배열의 문자를 작성자에 기록합니다
write(String data) - 지정된 문자열을 작성자에 기록합니다
writer를 닫습니다 문자열을 파일에 쓰기 public class Main { public static void main(String args[]) { String data = "This is a line of text inside the file."; 위의 예제에서는 파일 출력 스트림을 사용하여 출력 스트림 레더를 생성했습니다. 출력 스트림 레더는 // 创建 FileOutputStream OutputStreamWriter output = new OutputStreamWriter(file); //创建一个OutputStreamWriter OutputStreamWriter output = new OutputStreamWriter(file); //将字符串写入文件 output.write(data); //关闭 writer output.close(); } catch (Exception e) { e.getStackTrace(); } } }
在上面的示例中,我们使用文件输出流创建了一个输出流读取器。输出流阅读器与public class Main {文件链接。
OutputStreamWriter output = new OutputStreamWriter(file); OutputStreamWriter output = new OutputStreamWriter(file);
public class Main {public static void main(String args[]) {
String data = "This is a line of text inside the file.";
OutputStreamWriter를 생성합니다
문자열을 파일에 쓰기 output.write(data); writer를 닫습니다 output.close(); catch(Exception e) { 위의 예제에서는 파일 출력 스트림을 사용하여 출력 스트림 레더를 생성했습니다. 출력 스트림 레더는 // 파일 연결. OutputStreamWriter output = new OutputStreamWriter(file); // 파일에 다음 내용을 채우겠습니다.1 프로그램을 실행할 때, // output.txt 파일에 다음 내용을 채우겠습니다.2 This is a line of text inside the file.8 // 데이터를 출력 스트림에 기록하는 인코딩 유형을 얻을 수 있습니다. 예를 들어, System.out.println("output1의 문자编码: " + output1.getEncoding()); System.out.println("output2의 문자编码: " + output2.getEncoding()); // 파일을 닫습니다 output1.close(); output2.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
output1의 문자 encoding: Cp1252 output2의 문자 encoding: UTF8
위의 예제에서는2개의 출력 스트림 작성자를 생성했습니다. 각각의 이름은 output1와 output2.
output1문자 encoding을 지정하지 않았습니다. 따라서 getEncoding() 메서드는 기본 문자 encoding을 반환합니다.
output2지정된 문자 encodingUTF8따라서 getEncoding() 메서드는 지정된 문자编码을 반환합니다.
주의:Charset.forName() 메서드를 사용하여 문자编码 유형을 지정했습니다.
출력 스트림 작성자를 닫으려면 close() 메서드를 사용할 수 있습니다. close() 메서드를 호출하면 작성자에 데이터를 입력할 수 없게 됩니다.
메서드 | 설명 |
---|---|
flush() | 写入자에 존재하는 모든 데이터를 강제로 적절한 목적지에 쓰기 |
append() | 지정된 문자를 현재 작성자에 삽입하십시오 |