[DataStream]
[DataOutPutStream]
public static void main(String[] args) {
int[] score = {100,60,55,94,12};
try {
FileOutputStream fos = new FileOutputStream("score.txt");
DataOutputStream dos = new DataOutputStream(fos);
for(int i = 0 ; i < score.length ;i++) {
dos.writeInt(score[i]); //정수값 write > read(DataInputStream)
//dos.writeUTF(str)
}
dos.close();
fos.close();
}catch (Exception e) {
// TODO: handle exception
}
}
[DataInPutStream]
public class Ex14_DataInputStream {
public static void main(String[] args) {
int sum=0;
int score=0;
FileInputStream fis=null;
DataInputStream dis=null;
try {
fis = new FileInputStream("score.txt");
dis = new DataInputStream(fis);
while(true) {
score = dis.readInt();
System.out.println("Score int 타입 :" + score);
sum+=score;
}
}catch (Exception e) {
System.out.println("예외발생 : " + e.getMessage());
System.out.println("sum결과 : " + sum);
}finally {
try {
dis.close();
fis.close();
}catch (Exception e) {
}
}
}
}
[ObjectDataOutPutStream]
//객체를 파일에 write
public class Ex15_ObjectDataOutPutStream {
public static void main(String[] args) {
String filename = "UserData.txt";
try {
FileOutputStream fos = new FileOutputStream(filename);
BufferedOutputStream bos = new BufferedOutputStream(fos);
//객체 (직렬화)
//write (객체 단위로)
ObjectOutputStream out = new ObjectOutputStream(bos);
UserInfo u1 = new UserInfo("superman", "super", 500);
UserInfo u2 = new UserInfo("scott", "tiger", 50);
//직렬화
out.writeObject(u1);
out.writeObject(u2);
out.close();
bos.close();
fos.close();
System.out.println("파일생성 -> buffer -> 직렬화객체 -> write");
}catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
[ObjectDataInPutStream]
//UserData.txt 파일에서 직렬화된 객체를 read (역직렬화) 다시 조립
public class Ex16_ObjectDataInPutStream {
public static void main(String[] args) {
String filename = "UserData.txt";
FileInputStream fis = null;
BufferedInputStream bis = null;
ObjectInputStream in = null;
try {
fis = new FileInputStream(filename);
bis = new BufferedInputStream(fis);
in = new ObjectInputStream(bis);
//UserInfo r1 = (UserInfo)in.readObject(); //역직렬화: 복원
//UserInfo r2 = (UserInfo)in.readObject(); //역직렬화: 복원
//System.out.println(r1.toString());
//System.out.println(r2.toString());
//객체 단의 read 객체가 없으면 null 값 반환
Object users = null;
while((users = in.readObject()) != null) {
System.out.println(users);
}
}catch (Exception e) {
System.out.println(e.getMessage());
}finally {
try {
in.close();
bis.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}