수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

ObjectOutputStream에 대한 질문입니다.

밝음이

2023.04.01

이전에 txt관련 되어서 질문했는데 아무도 답변이 없어서요...
제가 무지 궁금한게 있습니다.
현재 스터디에서 상품관리를 만들고 있습니다.
상품정보가 들어있는 object class를
objectoutputstream을 통해서 만들입력을 했습니다.
처음에 입력한것은 잘 들어 가고 지대로 출력을 합니다.
그런데 두번째 재 입력을 하면 용량을 보면 들어간걸로 나오는데
출력을 위해서 objectinputstream을 통해서 할려고하면
streamcorruptedexception을 일으키더군요...
object를 이용해서 입출력을 하면 나중에 상품의 내용추가시나 크기같은것에 제약이 없으니 편해서 이렇게 구현할려고했는데 오류를 전혀 찾을 수가 없네요..
그리고 더 중요한것은 objectinputstream의 메소드중에서 available()이라는 메소드는 스트림에 남아있는 bytes를 알려주는것인데

하나씩리턴하면서 출력을 해보면 처음부터 계속 0으로 나옵니다.
소스는 아래에 있는데 누가좀 알려줬으면하네요..

빨간색은 출력부분이고 파란색은 입력입니다.import java.io.*;
import java.util.*;

public class test{

public static void main(string[] args){
try{
fileoutputstream filewrite;
objectoutputstream productwrite;
fileinputstream fileread;
objectinputstream productread; filewrite=new fileoutputstream(ttt.dat,true);
productwrite=new objectoutputstream(filewrite);

productwrite.writeobject(adfasfas1);
productwrite.writeobject(adfasfas2);
productwrite.writeobject(adfasfas3);
productwrite.close(); fileread=new fileinputstream(ttt.dat);
productread=new objectinputstream(fileread);
while(fileread.available()0)
system.out.println(productread.readobject());
}catch(streamcorruptedexception e){e.printstacktrace();}
catch(ioexception e){system.out.println(e);}
catch(classnotfoundexception e){e.printstacktrace();} }
}

추가 질문----------

다른사이트에서 회원분중에 답변을 참고하여 좀더 확인 해본 결과 objectoutputstream으로 생성하여 쓰기 시작하면

파일쓸때 처음에 의문의 바이트코드가 작성이 됩니다.그리고 제가 입력한 글이 작성이 되고요...

다시 같은 파일을 실행하면 또 그 바이트코드가 작성이되고.... 이 바이트코드를 어떻게 제어 할수가 없는지를 알려주세요..

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 예다움

    아~~ 이건 그냥 테스트용이였구요.. 직렬화된 클래스를 집어 넣을 려고 했던 것입니다. 수다님 말대로 읽어와서 hashtable에서 넣고 지지고 볶음 다음에 다시 새로운 파일로(기존의 파일에 덮어쓰는형식)작업하는걸로 결론을 내릴까하빈다. 수다님 답변 감사드립니다. ^^

  • 상처주지마

    직열화을 했나요?
    그리고 직열화를 했어도 제가 해본바에 의하면.......
    한번에 전체를 다 저장해야해요.... 추가를 하면 안읽어지더군요.
    그래서 추가할경우 모두 다 읽어서 새로운화일에넣고 그담에 추가해서 넣어야 합니다.
    close()이후에 추가하면 직열화가 깨져서 추가가 안돼더군요.

번호 제 목 글쓴이 날짜
2699380 메뉴가 계단식으로 나타나요.. ㅠ.ㅠ (5) 스릉흔다 2025-06-25
2699354 영문 웹폰트 관련 질문입니다!!! (1) 치킨마루 2025-06-25
2699329 윈도우 미디어 플레이어 URL 질문!!! (1) 제철 2025-06-25
2699296 동영상 배경 질문드려요!!!!!!!!!!!!!! 핫파랑 2025-06-24
2699214 position:fixed 에 대한 질문입니다.. (7) 사이 2025-06-24
2699183 제이쿼리 이미지 슬라이드 위치값 수정 초엘 2025-06-23
2699153 테마[ADORABLE]에서 페이지생성시 하위페이지는 2개밖에 안되나요? 흰여울 2025-06-23
2699129 네이버 블로그 또는 사이트의 글을 불러오기 갤원 2025-06-23
2699070 탭메뉴처럼 셀렉트 박스를 이용해서 내용을 출력할 수 있는 방법이 있을까요. (3) 큰꽃늘 2025-06-22
2699016 인터넷이 안되는 환경에서 validator설치방법 (3) 은송이 2025-06-22
2698988 대체 C++ 6.0 exe 아이콘은 어떻게 넣는건가요? 외국녀 2025-06-22
2698960 음성파일을 embed로 작업했는데..웹 표준코딩으로 변경하려면 어떻게 해야하나요? (1) 잎새 2025-06-21
2698932 메뉴목록 풍선창 만들기 html (2) 하늘이 2025-06-21
2698901 http://www.zeitgeistbot.com/ 이 사이트처럼 움직이는 효과를 무엇이라고 하나요? 누림 2025-06-21
2698876 table width값 크로스브라우징에 대한 문의 (2) 볼수록매력 2025-06-21
2698849 c언어 질문. (3) 아름나 2025-06-20
2698823 setInterval 이벤트 제거 하려면... 가온길 2025-06-20
2698796 이 오류를 이해를 못하겠어요 Addicted 2025-06-20
2698712 IF 문 이 계속 오류가 나요 (2) 옆집오빠야 2025-06-19
2698687 이미지를 클릭하면 그 이미지를 다운받게해주는 방법 질문요 ^^ (미해결) (5) 해지개 2025-06-19
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com