나우캠퍼스 C# 언어 6강. 파일입출력(3/3) -업그레이드 > c#

c#

Microsoft C# Programming 강의 리스트

나우캠퍼스 | C# 언어 6강. 파일입출력(3/3) -업그레이드

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
나우캠퍼스님의 c#강의 청각장애인을 위한 자막
15444117156717.jpg

 

음 이전 깡 에 이어서 두번째 직렬화 를 보도록 하겠습니다 자 직렬화
또는 시리얼 라이즈 이라고 하는데요
어 직렬 하라는 말 보다는 시리얼 id 란 말을 많이 쓰니까 2cd
lig 를 잘 기억해 주시면 좋을 것 같습니다
자 우리는 앞에서 바이널 인 리드 라이트를 살펴봤습니다 이름을 통해서
우리는 이진 파일을 저장할 수 있었고요 또는 구조체를 명시해 놓고 구조체
그 멤버 변수의 값을
112 또한 이진 파일 형태로 저장할 수 있었죠
잘 읽어 보니까 어떻습니까 하나씩 하나씩 개별 줄 하다보니까 3회
번거로운 부분도 없지 않아 있습니다 그래서
이식 lig 를 이용하게 되는 요 자개 별도로 하던 부분들을 한꺼번에 할
수 있고요 그 다음에 구조체 또는 클래스 로 명시한 같은 그 멤버 변수의
갓을 한국은 저장하거나 한꺼번에 고 1 거닐 수 있는 그런 부분들이 바로
시디 lig 어서 제공을 하고 있습니다
자 그러면은 씨를 라이즈 한번 보도록 하겠습니다 자 12일 라이즈
있습니다
12월 라이즈는 어 스 트림 리드 라이트 조 라이트 그땐 파이널 미드
라이트 입니다
그래서 이거에 관련된 어떤 단점을 보완하고 있는데요
어 지금 스트링 파이널 리드 라이트 스트림 원점 부담 어떤 데 있다
기본 데이터 형 마늘 읽고 저장 했었죠
그 반 단에 또한 어떤 그 구조체 라든가 또 이미 의 그 어떤 데이터
형을 우리가 완 들었을 때 그거 대로 한꺼번에 뻑 죄다 고
한글의 뭐 이거 낼 수 있는 그런 방법이 없을까 라는 분도 우리가 생각해
봅니다 왜냐하면 10부 플러스 크기 가능 했으니까요
자 그래서 그 부분이 이제 씨를 id 를 통해서 이루어 지는데요 어
구조체 또는 클래스 단위로 저장하고 있습니다 그래서 거기에는 멤버
변수들을 한꺼번에 읽고 저장하게 되는 그런 형태가 되죠 자 그래서 요사
하기 위해서는 파이 스트링과 그래 바이너리 포맷의 토 라고 하는 클래스를
이용해서 우리가 이것을 사용할 수가 있는데요
바이너리 폼의 터 라고 하는 냉 스페이스가 있습니다 그래서 유지 잉어 등
시스템 헌터의 시 lig 에서 한 품에 뽀빠이 너지
여기까지 우리가 명시를 해 줘야 하지만 파이널포 메터 라고 하는 이것을
사용할 수가 있습니다
아 자 이 시계 라이즈 를 사용하기 위해선 요
22 월 라이저 v 라고 하는 욕 우먼을 명시를 해 줘 만 합니다 그래서
구조체의 상 위에다가 또는 클래스 상위에 다 이렇게 놓게 되면 요 요
구조체 명시해 놓은 데이터를 첨 더 구조체 끝까지 저곳을 하나의 단위로
보고요
그 다음의 클래스 같은 건 어떻습니까 멤버변수 이쪽에서 맨 뭐 변 암 맨
뭐 매수 드가 있죠 그래서 매수 들은 제외하고
여기 들어있는 그런 그 음 저 멤버 변수를 기준해서 그 값에 순서에
따라서 데이터를 읽고 저장하는 그런 부분들을 하게 됩니다 해서 보호하기
위해서 시리얼 라이즈를 반드시 명시 해 줘야 되고요 그 다음에 요런
형태도 많이 쓰니까 우리 꼭 기억을 할 필요가 있습니다
자 그 다음에 우리가 이제 시겔 아이즈 될 부분
그쵸 우리가 어지며 라를 할 부분들을 이런 주로 명시를 해 주고 그
다음에 거기에 관련된 직접적인 호출을 해야 되는데요
자시 리얼 아이즈 라고 하는 요런 그 메소드가 있습니다 그 다음에 이것은
바이너리 포맷의 토 에 것 같은 그 메소드 이구요
그 다음에 시리얼 라이즈는 그 데이터를 조금 메모리에 들어있는 데이터를
저장하는 역할을 해 주고요
또 이 dc 를 아이즈 는 또 그 저장되어 있는 데이터를 다시 읽어 내서
그 그룹 제 안에 다 합병
음 클래스 아니라 뽐 넣어 주는 그런 역할을 합니다
특히나 대시를 라이즈 같은거는 리턴되는 파일이 오브젝트에 이 때문에 항상
테스트 영상 들을 통해서 것들 형 변환을 해야 된다는거
그런데 이제는 아실 수 있죠 그래서 그런 부분이 있습니다
자 그러면은 구조체 내용을 저장하고 있는 특히 나에게 이진 파일 형태를
읽고 그 다음에 저장하는 소스를 보면서 지금 우리가 간략하게 배웠던 요
내용이 실제로 어떻겠소 시적으로 적용되는지 고상 살펴보도록 하겠습니다
소수의 서요 자유지 에서 시스템 런타임 cli 제이 션 폼의 토바이 널리
있게 돼 있죠 그래서 이런 유지 금일 필요하고요
그 다음에 내가 저장하고자 하는 그룹 체를 이렇게 이렇게 명시를 했구요
그 다음에 clr 줘 버리라고 하는 요것을 이렇게 명시를 해 줘야 합니다
그럼 요 것이 하나의 단위로 이루어지죠
자 그 다음에 메인 해서요 2 보시면은
다녀온 체험도 내려 올게요 자 데이터에서 2개를 이렇게 명지 했습니다 그
다음의 값을 늦고 요 다음에 요것도 놓고 값을 이렇게 넣었습니다
자 회담이 저장 하죠 그래서 u 진구 문 들어갑니다 그래서 파이 스트림에
대한 부분들을 이제 글 5줄 해주는데요
파파이스 트림과 지금 바인 을 포기했다 어떻게 연동된 지고 사항을 잘
보셔야 합니다
자 파이 스팀을 통해서 내가 그 읽고 자는 파일을 정보를 이렇게 셋 업을
했습니다
그리고 파이 스트림을 생소하죠 그 다음에 바이너리 포맷의 틀을 생성을
합니다
저희 게 중요하죠 생성하는데 바이 4포 매트 를 생성하고 그 다음에
거기에 있는 시리얼 아 이제 호출 하죠 그래서 파일에 대한 정부 그
다음에 그 구조체
즉 배열이 줘 그래서 것을 이렇게 명시를 해 주게 되면 한번에 뻥 조정이
됩니다
굉장히 간단하죠 그렇게 어요 생에 위치에 볼 수 있는 것은 어 데이터가
많이 게 배울 형태이며 는 7일 라이즈 안에서 뭐 반복문을 통해서 뭔가
저장 하겠죠 그런 부분들이 이미 cl 아이즈 라고 하는 이 메소드 안에
다 들어 있다는 거죠
코딩이 되어 있다는 것이죠 그래서 우리가 이것을 알면 은 이렇게도 쓸 수
있단 얘깁니다 그래서 여러분들이 바이너리를 이용할 때 여러 형태도
여러분들이 굴을 해보시고요
1 건의 형태입니다 먼저 요런 그 배열에 참조 형 변수를 이렇게
선언했습니다
그 다음에 u 진구 분 들어가구요 파일 스트림 들어가죠 그 다음에 9번
했어 1조
그쵸 있습니다 저는 바이니 폼의 털을 하구요
그 다음에 에서 dc lig 를 했습니다 흐르며 는 fs2 잃게 해 주죠
그래서요 바에 시스템을 이렇게 명시 해 주게 되면 파일을 전부 다 끝까지
이거 내 겠죠
읽어 내서 거기에 대한 데이터를 어떤 식으로 넘겨 줍니까
참조할 수 있도록 이렇게 넘겨 주죠 그러면 우리는 리전트 데이터를
이용해서 즉 여기에서 dc 를 라이즈 해서 가지고 있는 그 메모리를 이제
믿을 트 데이터 라고 하는 이름의 별명으로 서 내 읽어낼 수가 있죠
자 그래서 포문을 돌립니다 그 다음에 두 번이 우리가 알고 있기 때문에
이를 이렇게 명시 했지만 사실은 그것은 알 수가 없는 형태 잊어 앞에서
리제트 점 랭스 를 이용한 것이 오히려 더 좋은 코드 라 볼 수 있습니다
에어컨 쏠라이트 라인 해 놓고 그 다음에 가까이 값을 이렇게 중요 하죠
그래서 실제로 이런 분들이 지금 가능한지 캐서 지금 저장하고 읽어 내
잖아요 많이 저장이 잘못되었다고 만일 있는 것이 문제가 될 겁니다
하지만 이 부분이 정상적으로 동절 한다.고 하면은 당연히 아 우리가 원하는
그런 그분이 앞에서 배웠던 고 내용이 동작한다.고 우리가 생각할 수 있죠
예 요 데이터입니다 잘못에 1 0.5 음 옳게 있죠 자 실행해 보겠습니다
자 신형 하니까 아 결과도 동일하게
나무 서 확인해 볼 수가 있습니다 0점 테스트만 테스토 이렇게 나오죠
자아 이진 파일 같은 경우에는 아요 것을 이용해 좋겠구나 라는 분들을
우리가 이해할 수 있죠 그래서 요 부분은 잘 매물 잘 해 놓으세요 해서요
부분은 여기 뿐만니라 토 까지 자 연결되기 때문에 요 거기까지
여러분들이 생각하시면서 본 강 의 내용들을 정리해 야생화 합니다
앞에서 우리는 시리얼 라이즈 를 통해서 아구 도체 전체를 저장하거나
클래스 a 는 멤버 펜슬 전체를 차지하는 것을 살펴 봤었죠
자 이번에는 역시 리얼 id 입니다 그쵸
아역 직렬 하죠 그래서 역진 열은 여기에 나오듯이 직렬화 의 대상이 되는
구도 체나 클래스 안에서 또는 어떻습니까
즉 그 쓰고 싶지 않은 데이터가 있잖아요 읽고 싶은 데이터가 아니라 그냥
그 안에 클래스 안에 써 쓰는 어떤 그런 그 멤버 병 쓰일 수도 있잖아요
그쵸
예 그럴 때 어 직렬 해서 재미 시키고자 할 때 2d 시리얼 라이즈를
우리가 명치를 해주면 됩니다
자 그래서 보면요 시 리 얼 라이즈 에 넣고 클래스 해놓고 이렇게
명시합니다 그렇죠 하죠
근데 거기서 저장 하고 싶지 않은 부분이 있다고 하면은 넌 시리얼
라이즈를 이렇게 구문으로 블래키 수 해져서 명치 해주게 되면 은 여기에서
부터 쭉 나오는 모든 금 멤버 변수들이 바로 넌 cl 라이즈 에 해당이
됩니다
예 그래서 그렇게 우리가 명시할 수 있는데요
요 부분을 이용해서 한번 코드 1 볼게요
성수 에서요 다시 리얼 라이즈 에서 구도 쳐 이렇게 했습니다
그래서 요우 데이터는 저장하고 그 다음에 요것만 근데 저장 하고 싶지
않습니다 그럴 때는 넌 씨를 라이즈 드 이렇게 명신 해주고요
그 다음에 어플의 밍 그 다음에 매일 겠읍니다 서 2개의 그 배열을 생성
하죠
그리고 난 후에 요렇게 우리가 저자 하고 있습니다
그 다음에 u 직무 늘 사용하고 있는데요 요것도 쪼끔만 로 내려서 자
보겠습니다
유진 분 을 사용해서 파일 스트림을 생성 했습니다
그렇죠 그 다음에 파이널이 포맷해서 어 그 바이널 폼의 터 를 생성하고
있고요 그 다음에 7일 라이즈 를 통해서 우리가 저장합니다 파이널이 5
초 sk 했을 때 이 테스트 왕과 테스 투가 저장 되는지 안되는지 우린
읽음으로 통해서 그 데이터의 저장 유무를 파악할 수 있죠 자 여기서도
이제 참조 0
배열 변수를 선언했습니다 그 다음에 뉴 파이 스팀을 생산 했고요
그 다음에 바이너리 포맷후 있습니다 그럼 dc 를 라이즈를 하고 있죠
그럼 fs2 이렇게 있구요
그 다음에 테스트 연상될 통해서 우리는 그 내용을 봤습니다
작은 에 폼을 이용해서 우리가 2개를 위해 알고 있으니까 이렇게 실행한
은 거죠
하고 그 다음에 그 내용을 이렇게 출력 했을 때 되게 str 와는 요
어떻습니까
우리가 그 시를 라이즈 에서 제외 시켰죠 하기 때문에 빈 공간으로 이렇게
출력이 됩니다
자 그래서 우리가 실제로 요것이 그러한지
먼 출력을 해 보도록 하겠습니다 자신의 하니깐요
지금과 같이 에 값이 체력 되고 그 다음에
어 그 스트링에 대한 분들은 아예 출력이 안 되죠
예 그래서 킨록 에서 그 값이 없다는 것을 좀 정의 되어 있지 않는 것은
값들이 들어 있다는 것을 우리 여기서 알 수가 있습니다
컬렉션의 증여 라는 보겠습니다 그래서 어 클리어 액션 요
여기 나와있듯이 같은 데이터 입니다 그래서 같은 데이터 형이랑 거하며 는
어 기본 데이터 형 외의 해 그 다음에 어떻습니까
어 져 객체 단위로 쪼개 체 단위로 또는 클래스 단위로 이제 그것들을
연속적으로 메모리에 저장해서 관리할 수 있도록 해준 것이 이제 컬렉션은
역할이 고요 그 다음에 재 내에 대해 이란 것이 나옵니다 제네릭 은요
10 불의 템플릿 쿼터 똑같습니다 그래서 어 그와 같은 저장하고자 하는
데이터 타입을 외부에서 그것을 어
고종 에서 또는 설정에서 어 그 부분을 사용하는 그런 형태를 얘기를 하죠
자 그래서 고고 에 대한 어 얘가 나와있습니다 어레이 리스트는 우리가
앞에서만 있어봤자 내야죠
그래서 어린 리스트도 있구요 그럼 제네릭이 한 형태입니다 해서 리스트가
있고요 그 다음에 이렇게 이렇게 t 이렇게 되었습니다 삶을 요기에 대한
데이터 형을 우리가 움 선호할 때 그 형을 지정 하겠죠 그래서 지정을
하고서 쓰는 그런 형태를 이제 재 내야 되기 라고 얘기합니다 서 여기서
지정한 요 형태는 물론 뭐 객체 로드 가능 하지만요
뭐 일반 변수 되고 와서 다양하게 이렇게 쓸 수가 있는 것이죠 자 그래서
제네릭을 이용한 어조 직렬화 를 한번 살펴 볼텐데요
소스를 보면 은 이런 의미를 좀 더 쉽게 여인의 이해를 할 수가 있을
겁니다
아 먼저 12월 라이즈 에서 이에 스트럭쳐 여기다가 이렇게 명시했습니다
그래서 결국 요 두 개의 데이터를 저장한다. 놓은 것이겠죠
자 그 다음에 어메 있습니다
그다음 m 2절 트 리 스 트 드 인데 호 리스트 내요 어떤 리스트는 제
이기죠 그렇기 때문에 외부에서 그 데이터 형 후에 명시를 하고 우리가
선언할 수 있습니다 서 리스트에서 관리하는 데이터가 어떤 데이터 타입이다
데이터 라고 하는 좀 그런 어 구조체 형으로 되어 있다는것을 외부에서
명시를 하죠 그래서 이렇게 명시 해 줍니다 해서 놓은 요금만 되는 것이
아니라 모든 데이터 타입을 다 명시할 수 있죠
잘되면 리스트 데이터에서 리스트에는 꽃 그 다음에 생성합니다 요거 잘
보세요 유를 해 놓고요 그 다음에 리스트 대놓고 똑같죠
그렇게 해놓고 이렇게 생성합니다
정답이 이것은 뭐겠습니까 즉 요 객체 데이터 리스트 를 참조할 수 있는
그런 변수 해당이 되겠죠
그렇게 할 때도 어요 런 형태를 명치를 해주지만 요것을 통해서 어 접근을
할 수 있겠죠
재담 의 데이터 리스트 해놓고 추가할 땜에 헤드의 대해 놓았습니다 그
메뉴에서 바로 집어낼 수 있죠
그렇게 해서 요 데이터 라고 하는 요 부분을 전부 다 넣어 줬고요
그 다음에 여유 질문 들어갑니다
위증 문 들어 하고 그 다음에 파일을
의 짐 파이 줘 그래서 생성 하고요 그 다음에 바이너리 포맷의 토 를
통해서 어떻합니까 11 라이즈 하죠
그렇게 놓고 데이터 리스트를 이렇게 합니다 그래서 어떻게 봄이 시 리 얼
라 이 즈 라고 하는 붐이 에 굉장히 좀 다양하기 는 가지고 있죠 그래서
일반 밸 만 되는 것니라
어 이런 그 되는 얘기 라든가 아니면 컬렉터 라던가 뭐 이런거 아트
컬렉션 이라던가 이런 것들 까지도 거기는 데이터를 다 좀 저장해야 한다.는
걸 안 해주거나 또 읽어낼 수 있는 아주 파워풀한 그런 기능들을 가지고
있죠
그 다음에 u 징 문이 있습니다 파일 스트림에서 에페 스툴 돼 있고요 파
이스트 임대 있고요 그 다음에 파이아 바이너리 포맷의 토어 있게
되었습니다
그렇죠 그 다음에 dc 를 라이즈 를 통해서 이제 읽어 내고 있죠 자
여기서도 이제 그 읽어낼 때 캐스트 연산자를 써야만 합니다
자 캐스트 연상 되었을 때 이렇게 써 줘 그렇죠 그래서 우리가 알 수
있는 것은 시 자외선은 이제 모든 객체는 모든 간에 그 명시된 그 변수
앞에 있는 것들을 전부 다 이제 무어 수 없던 형태로 다룰 수 있다는
얘깁니까
하나의 데이터 형 으로서 잠 다 다룰 수 있죠 그것이 재 내리기 든
아니면 뭐 컬렉션이 든 클래스 딩 안에
자 그래서 이렇게 명시를 하고 여타 메리 절 트 리스트를 통해서
접근하도록 이렇게 명시를 했습니다
꿈을 통해서 이렇게 5번 반복 을 하고 있습니다
그 다음에 리 절 틀 리스트 안에 있는 데이터와 다음에 str 을 이렇게
출력을 하게 되죠 그래서 요 부분도 많이 사용하니까 요 이름들 잘 기억해
놓은 것이 중요합니다
정해서 뭐 바이너리 포멧후 털을 이용하게 되면 또는 시리얼 라이즈 를
이용하거나 또는 dc 리얼 아이즈 를 이용하게 되면 은 이런 리스트에
있는 특히나 앤 리스터 안에 무엇이 쓰니까 데이터 라고 하는 구조체
형태의 그 클래스가 들어가 있죠
예 위에서 보면 요금 좀 요구르트 형태의 그래서 아 구조체의 형이 들어가
있는데요 그 형을 그대로 이용해서 우리가 뭔가를 할 수가 있습니다 상당히
좀 간편하다고 볼 수가 있죠
자 여기까지 해서 우리가 쭉 빠 127 역에 대한 상들 살펴봤는데요 자요
삼은 정리를 한번 해보겠습니다
파일 바이트에 대한 부분적 가서 가장 기본이 파일 스트림 이고요
그 다음에 파일 스트림을 이용할 때 우리는 바이트를 또 우리가 원한
단위로 던 변화를 해야 되죠 그래서 비트컴퓨터 란 것이 있긴 한데요
이게 사용빈도 게 낫습니다 해서 이것은 뭐 이정도 있구나 란 정도만
여러분 생각하시면 되구요
간혹가다 여러분들이 어떤 서적을 볼 때 보통 보면은 요기서 또 설명 해요
어퍼 파일 스트림 떠요 고 설명하고 다음 용이 넘 거여요 이렇게 너무
갑니다 그렇죠 하지만 결국에는 사용된 것이 요정도가 사용되지 요것은 거의
사용되지 않습니다 그래서 이렇게 생각할 때 요부분 아 그런게 있구나 라는
정도만 생각하시고 요 자 그다음에 팩스 파일을 저장하고 하고자 할 때
스트림 리드 라이터를 이용합니다
그래서 그럴 때 파일 스트림을 사용할 수도 있고 아니면 파일 스트림을
제외한 요건 만으로도 빨리 떠나게 저장할 수 있죠 그래서 두 가지 방법을
염기 이해를 하셔야 합니다
자 그 다음에 이진 파일 요건 굉장히 중요하죠 여기서 별 다섯 개
있는데요 특히나 이 지금 소개되는 스트림 led 라이트 파이널 리드
라이트는 증거 같이 파일의 만 그 내용을 쓰는 것니라요
이것은 fr 네트워크 하고 같이 연결됩니다 그렇죠 그래서 여러분들 그 시
#프 프레임 과정이 이미 왕관 되어 있기 때문에 거기에 를 보시게
되면 요 부분이 나옵니다
그래서 어 이거 어디서 봤던 대 해서 다시 찾아 보는 것이죠
예 그래서 지금 요 대응을 어 및 이 말씀을 드립니다
자 스트림이 딜라이트 를 이용하게 되면 은 우리가 파일로 저장할 수 있는
데이터 형을 다다를 수가 있죠 그래서 이거 또 우리의 살펴봤는데
특히나 이진 파일 형태로 우리가 데이터를 많이 저장합니다
그래서 클래스 단위로 또는 일반적인 구조체 단위로 많이 찾아 하죠 그래서
그 주체의 단위로 저장할 때 이 바이너리 미드를 it 를 이용하게 되면
하나씩 하나씩 의거 내 되기 때문에 상당히 좀 뭐랄까요 번거롭지 요
그래서 그 번거로운 것을 해결하기 위해서 cdl 라이즈업 을 이라고 하는
요 부분이 이제 도입이 됩니다
점점 지나고 있죠 그 다음에 그것을 원활히 할 수 있도록 해주기 위해서
바이너리 포맥스 터가 등장하죠
그 다음에 시리얼 아이즈 와 함께 이제 무엇이 가치 관여할 수 있습니까
컬렉션 이라고 한 즉시 lig 에 명시된 구조체를 컬렉션 에다가 저장하고
그 다음에 컬렉션의 안에 있는 그 내용을 바이너리 포맷의 틀을 통해서
어떻게 합니까
이거
너 저장하거나 이런 분들을 할 수 있는 것이죠 그래서 요 부분이 굉장히
많이 사용이 되니까
요부분 염 특별하게 좀 정리를 잘 해 놓으시고 더 짝짝 짜 될 5개
떡국용 이렇게 명시를 했으면 좋겠습니다
자 여기까지 에서 6강 파일 입출력을 살펴보았습니다
그래서 파일 입출력이 단순하게 파일 출력 니라 네트워크 까지

댓글 0개

등록된 댓글이 없습니다.

본 사이트의 컨텐츠는 명시적으로 공유기능을 제공하고 있는 공개된 자료를 수집하여 게시하고 있습니다.

저작권, 강의등록, 광고, 제휴등은 "관리자에게 문의"로 메세지 주시면 확인후 답변드립니다.

Menu