Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

붓, 그리다

입출력(스트림) 2 본문

JAVA/Basic

입출력(스트림) 2

붓그린 2017. 6. 16. 17:14

1) 사원정보 파일로 저장

package j0616;
//사원정보를 파일로 저장
// 자바의 자료형에 맞게 저장 : DataInputStream, DataOutputStream
import java.io.*;
public class Sawon {

        public static void main(String[] args) throws Exception {
                // TODO Auto-generated method stub
                String mem_name=null; //이름
                String mem_id=null; //사번
                String mem_pwd=null; //암호
                String mem_gender=null; //성별
                String mem_age=null; //나이
                String mem_phone=null; //전화번호

                BufferedReader br=new BufferedReader
                                (new InputStreamReader(System.in));
                // 한글로 데이터를 저장 -> 파일 저장(FileOutputStream(영문), FileWriter(한글))
                File f=new File("C:/3.java/sawon.txt"); //만들 파일 경로 설정
                FileWriter fw=new FileWriter(f);
                System.out.println("===회원정보 입력하기===");

                //이름
                System.out.println("이름을 입력하세요.");
                mem_name=br.readLine();
                //사번
                System.out.println("사번을 입력하세요.");
                mem_id=br.readLine();
                //암호
                System.out.println("암호를 입력하세요.");
                mem_pwd=br.readLine();
                //성별
                System.out.println("성별을 입력하세요.");
                mem_gender=br.readLine();
                //나이
                System.out.println("나이를 입력하세요.");
                mem_age=br.readLine();
                //전화번호
                System.out.println("전화번호를 입력하세요.");
                mem_phone=br.readLine();

                //파일에 저장 -> FileWriter(출력) <-> FileReader
                fw.write(mem_name);fw.write("\r\n"); //줄바꿈
                fw.write(mem_id);fw.write("\r\n");
                fw.write(mem_pwd);fw.write("\r\n");
                fw.write(mem_gender);fw.write("\r\n");
                fw.write(mem_age);fw.write("\r\n");
                fw.write(mem_phone);fw.write("\r\n");
                //입력,출력할 것이 더이상 없을 경우 : 메모리 해제
                fw.close(); br.close();

        }

} -> 항상 새로운 데이터만 저장됨, 기존 데이터 보존 안됨




2) 데이터를 이어서 저장하기
- 생성자 FilrWriter(File file, boolean append) 사용

package j0616;
//사원정보를 파일로 저장
// 자바의 자료형에 맞게 저장 : DataInputStream, DataOutputStream
import java.io.*;
public class Sawon {

        public static void main(String[] args) throws Exception {
                // TODO Auto-generated method stub
                String mem_name=null; //이름
                String mem_id=null; //사번
                String mem_pwd=null; //암호
                String mem_gender=null; //성별
                String mem_age=null; //나이
                String mem_phone=null; //전화번호

                BufferedReader br=new BufferedReader
                                (new InputStreamReader(System.in));
                // 한글로 데이터를 저장 -> 파일 저장(FileOutputStream(영문), FileWriter(한글))
                File f=new File("C:/3.java/sawon.txt"); //만들 파일 경로 설정
                FileWriter fw=new FileWriter(f,true); //파일객체명, 추가모드 적용 유무
                System.out.println("===회원정보 입력하기===");

                //이름
                System.out.println("이름을 입력하세요.");
                mem_name=br.readLine();
                //사번
                System.out.println("사번을 입력하세요.");
                mem_id=br.readLine();
                //암호
                System.out.println("암호를 입력하세요.");
                mem_pwd=br.readLine();
                //성별
                System.out.println("성별을 입력하세요.");
                mem_gender=br.readLine();
                //나이
                System.out.println("나이를 입력하세요.");
                mem_age=br.readLine();
                //전화번호
                System.out.println("전화번호를 입력하세요.");
                mem_phone=br.readLine();

                //파일에 저장 -> FileWriter(출력) <-> FileReader
                fw.write(mem_name);fw.write("\r\n"); //줄바꿈
                fw.write(mem_id);fw.write("\r\n");
                fw.write(mem_pwd);fw.write("\r\n");
                fw.write(mem_gender);fw.write("\r\n");
                fw.write(mem_age);fw.write("\r\n");
                fw.write(mem_phone);fw.write("\r\n");
                //입력,출력할 것이 더이상 없을 경우 : 메모리 해제
                fw.close(); br.close();

        }

}



3) 자바의 기본자료형에 맞게 입력받은 값을 파일로 저장
- 사람이름->문자열, 나이,급여->숫자
- 다단계 결합 DataOutputStream와 FileWriter or FileOutputStream


package j0616;
//자바의 기본자료형에 맞게 파일을 저장하는 예제
import java.io.*;
public class DataOutTest2 {

        public static void main(String[] args) throws Exception {
                // TODO Auto-generated method stub
                // 1) 파일로 저장
                FileOutputStream fos=new FileOutputStream("C:/3.java/data.txt");
                // 2) 자바의 자료형에 맞게 포장
                // 메서드의 매개변수가 부모형일 경우 자식클래스의 객체도 적용 가능(객체형변환)
                DataOutputStream dos=new DataOutputStream(fos);
                // 3) 자료형에 맞게 메모리에 저장
                 char han='한';
                 System.out.println((int)han); //아스키코드값 확인
                 byte b=21;
                 String str="bg\n";
                 byte ba[]= {65,66,67};

                 //파일로 저장
                 dos.writeChar(han);
                 dos.writeByte(b);
                 dos.writeBytes(str); // writeString이 아님
                 dos.write(ba); // 배열
                 dos.close(); // 메모리 해제
                 fos.close();


                 //만들어진 파일의 내용을 다시 읽어들여서 확인 후 출력
                 DataInputStream dis=new DataInputStream
                                 (new FileInputStream("C:/3.java/data.txt"));
                 //변수명=read자료형()
                char c=dis.readChar(); // char 자료형만 읽어들이기
                byte b1=dis.readByte();
                String s=dis.readLine(); //readBytes()가 아님
                //메서드에 밑줄 : deprecation(앞으로 쓰지 말것)
                byte bb[]=new byte[3];
                dis.read(bb);
                dis.close();

                //출력
                System.out.println("c=>"+c);
                System.out.println("b1=>"+b1);
                System.out.println("s=>"+s);
                System.out.println("bb=>"+bb); // 배열은 객체로 인식
                // byte[] -> String으로 변환 : 생성자이용
                // String -> byte[]로 변환 : String.getBytes()
                // String str2=new String(bb)
                System.out.println("str2=>"+new String(bb));


        }

}



read자료형
- readBollean(), readChar()~




'JAVA > Basic' 카테고리의 다른 글

쓰레드  (0) 2017.06.16
입출력(직렬화)  (0) 2017.06.16
입출력(스트림) 1  (0) 2017.06.16
객체형변환, 라이브러리  (0) 2017.06.16
AWT를 Swing으로 전환시키는 방법  (0) 2017.06.16
Comments