데이터 주고받기(DataOutputStream)

데이터 주고받기(DataOutputStream)

  • 데이터를 주고 받는 방법을 알아본다.
  • DatainputStream과 DataOutputStream의 사용법을 배운다.
  • writeXXX메서드와 readXXX 메서드를 사용한다.
?
import java.io.*;
public class WritingDatas {
    public void writingData(String fname, boolean append)throws IOException{
        FileOutputStream fos=null;
        DataOutputStream dos=null;
        try {
            fos=new FileOutputStream(new File(fname), append);
            dos=new DataOutputStream(fos);
            dos.writeBoolean(append); dos.writeByte(123);    dos.writeChar(75);
            dos.writeDouble(34.56); dos.writeFloat(345.23f); dos.writeInt(123);
            dos.writeLong(345L);    dos.writeUTF("홍길동");
            dos.flush(); //fos.close();
        } catch (FileNotFoundException e) {
            System.out.println("잘못된 파일이름을 입력했습니다.");
        }
    }
    public void readingData(String fname)throws IOException{
        try {
            FileInputStream fis=new FileInputStream(new File(fname));
            DataInputStream dis=new DataInputStream(fis);
            System.out.println("append가능? :"+dis.readBoolean());
            System.out.println("read byte :"+dis.readByte());
            System.out.println("read char :"+dis.readChar());
            System.out.println("read double :"+dis.readDouble());
            System.out.println("read float :"+dis.readFloat());
            System.out.println("read int :"+dis.readInt());
            System.out.println("read long :"+dis.readLong());
            System.out.println("read utf :"+dis.readUTF());
            dis.close();
        } catch (FileNotFoundException e) {
            System.out.println("잘못된 파일이름을 입력했습니다.");
        }
    }
}
?
import java.io.*;
public class WritingDatasMain {
    public static void main(String[] args) {
        WritingDatas wd=new WritingDatas();
        try {
            wd.writingData("writed.txt",false);
            wd.readingData("writed.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
?
import java.io.*;
public class WritingDatasUsing {
    public void writingData(String fname, boolean append, WritingData wd)
      throws IOException{
        FileOutputStream fos=null;
        DataOutputStream dos=null;
        try {
            fos=new FileOutputStream(new File(fname), append);
            dos=new DataOutputStream(fos);
            dos.writeUTF(wd.getName());
            dos.writeInt(wd.getAge());
            dos.writeDouble(wd.getHeight());
            dos.writeBoolean(wd.isMan());
        } catch (FileNotFoundException e) {
            System.out.println("잘못된 파일이름을 입력했습니다.");
        }
    }
    public WritingData readingData(String fname)throws IOException{
        FileInputStream fis=null;
        DataInputStream dis=null;
        WritingData wd=new WritingData();
        try {
            fis=new FileInputStream(new File(fname));
            dis=new DataInputStream(fis);
            wd.setName(dis.readUTF());
            wd.setAge(dis.readInt());
            wd.setHeight(dis.readDouble());
            wd.setMan(dis.readBoolean());
        } catch (FileNotFoundException e) {
            System.out.println("잘못된 파일이름을 입력했습니다.");
        }
        return wd;
    }
}
?
import java.io.IOException;
 
public class WritingDatasUsingMain {
 
    public static void main(String[] args) {
        WritingDatasUsing wdu=new WritingDatasUsing();
        WritingData wd=new WritingData();
        wd.setName("홍길순");
        wd.setAge(20);
        wd.setHeight(165);
        wd.setMan(false);
         
        WritingData wd2=null;
        try {
            wdu.writingData("abc.txt",true, wd);
            wd2=wdu.readingData("abc.txt");
            System.out.println(wd2);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}}

댓글

이 블로그의 인기 게시물

파일처리(한번에 모두읽기, 라인단위로 읽기, 쓰기, 리스트처리, 특정길이만큼 읽기)

math 함수 쓰기

AWS 가용성,확장성