다른 Stream 과 연결되어 추가 기능을 제공해 주는 Stream 이다.
- 보조스트림은 계속해서 붙일 수 있다.
// 받은 데이터를 파일로 저장하기(내보내기)
public String join(HashMap<String, String> param) throws IOException {
String msg = "해당 아이디가 이미 존재 합니다.";
// 파일객체를 생성해서, 해당 파일이 있는지 먼저 알아보자
File file = new File("C:/img/temp/"+param.get("id")+".dat");
if(file.exists()==false) {// 파일이 이미 존재하면 파일 저장을 하지 않는다.
// 1. 스트림준비 + 2.보조스트림
FileOutputStream fos = new FileOutputStream(file);
DataOutputStream dos = new DataOutputStream(fos);
// 3. 읽어온 데이터 쓰기(입력한 순서를 꼭 기억하자)
dos.writeUTF(param.get("id"));
dos.writeUTF(param.get("pw"));
dos.writeUTF(param.get("name"));
dos.writeUTF(param.get("email"));
dos.writeUTF(param.get("gender"));
// write/readUTF (UTF를 사용해야 글자가 꺠지지 않음)
msg = "회원가입이 완료 되었습니다.";
dos.flush(); // 4. flush
dos.close(); //5. close
}
// 받아오는 파라메타값이 여러개일 경우 HashMap을 사용하여 추가해 준다.
HashMap<String, String> param =new HashMap<String, String>();
param.put("id", req.getParameter("id"));
param.put("pw", req.getParameter("pw"));
param.put("name", req.getParameter("name"));
param.put("email", req.getParameter("email"));
param.put("gender", req.getParameter("gender"));
// 직렬화는 오브젝트라는 덩어리를 잘게 쪼개서 보내는 작업이다.
// 역직렬화는 그 조각을 덩어리로 합치는 작업이다
// 그 사이에는 쪼개고 합치는 규격이 있어야 작업이 가능하다.
// 그래서 Serializable 이라는 interface 가 필요하다.
public class BoardBean implements Serializable {
// 직렬화 할때 부여할 고유 번호(없어도 크게 상관 없다.)
private static final long serialVersionUID = 1L;
// private - bean 규약
private String subject;
private String user_name;
private String content;
public String getSubject() {
return subject;