붓, 그리다
입출력(스트림) 2 본문
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