바이트의 스트림과 문자 스트림을 처리 할 수있는 PrintWriter
클래스를 테스트하고 있습니다. 내가 문자의 스트림을 시도 할 때 모든 것이 매끄럽게 진행되었습니다. 이제는 바이트 스트림으로 테스트하고 있었고 항상 읽는 내용을 출력 할 때마다 항상 null (예외)을 표시합니다. 여기에 코드입니다 :바이트의 스트림을 가진 PrintWriter 사용
package com.files.ex1;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
public class ex1 {
public static void main(String[] args) {
PrintWriter oPW;
try {
oPW = new PrintWriter(new ObjectOutputStream(new FileOutputStream("data.txt")));
oPW.write("1\n");
oPW.write("2\n");
oPW.write("3\n");
oPW.flush();
oPW.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
이 읽으려고 클래스는 항상 널 (null) 인쇄 :
또한package com.files.ex1;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class ex1_2 {
public static void main(String[] args) {
ObjectInputStream oOIS;
try {
oOIS = new ObjectInputStream(new FileInputStream("data.txt"));
String s = (String) oOIS.readObject();
System.out.println(s);
} catch (IOException e) {
System.out.println(e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
}
}
어떤이 클래스를 사용할 때의 장점은? 문자의 스트림에 대해서는 각각 BuffedReadear
또는 BufferedWriter
을 사용하여 각각 읽기 또는 쓰기를 최적화 할 수 있으며 flush()
메소드도 있습니다. 그리고 PrintWriter
을 바이트 스트림과 함께 사용하면 어떤 이점이 있습니까? ObjectOutputStream
만을 사용하면 위의 작업을 수행하려고 할 때 작동합니다.