파일 입출력 (8) 썸네일형 리스트형 2020.9.21일자 수업 : 파일 입출력 도구들 파일 입출력 git/eomcs-java-basic/src/main/java com.eomcs.io.ex03.Exam0420 git/eomcs-java-basic/src/main/java com.eomcs.io.ex04 git/eomcs-java-basic/src/main/java com.eomcs.io.ex05 git/eomcs-java-basic/src/main/java com.eomcs.io.ex06 git/eomcs-java-basic/src/main/java com.eomcs.io.ex07 git/eomcs-java-basic/src/main/java com.eomcs.io.ex08 DataIntputStream / DataOutputStream FileInputStream / FileOutput.. 2020.9.17 일자 수업 : 파일 입출력, 바이트 스트림, 캐릭터 스트림 파일 입출력 git/eomcs-java-basic/src/main/java com.eomcs.io.ex01.Exam0710~0731.java git/eomcs-java-basic/src/main/java com.eomcs.io.ex02 git/eomcs-java-basic/src/main/java com.eomcs.io.ex03 하위 디렉토리 모두 조회하기 특정 디렉토리 안에 있는 파일과 하위 디렉토리의 리스트를 뽑는 훈련을 했다. 이제는 리스트안에 들어가는 디렉토리들의 하위 디렉토리들도 모두 검색하여 모든 파일과 디렉토리를 끝까지 출력하려고 한다. 이것은 다음과 같은 과정으로 프로그램을 짤 수 있다. 특정 폴더의 파일과 하위 디렉토리를 출력하는 메서드를 만든다. 그 메서드 안에서 배열 안에 들어있는 디.. 2020.9.25 일자 수업 : JSON, 네트워크 실습 - JSON 형식 git/eomcs-java-project-2020/mini-pms-32 다양한 언어와 플랫폼에서 모두 호환되는 데이터 형식은 xml과 JSON 이 있다. 다만 xml는 메타데이터의 비중이 크기 때문에 메모리 낭비가 심하다. 따라서 JSON 형식에 따라 데이터 파일을 만들어보려고 한다. JSON이란? 속성-값 또는 키-값 으로 된 데이터 객체를 텍스트로 표현하는 개방형 표준 데이터 포맷이다. 예를 들어 다음과 같은 형식을 취한다. {속성:값, 속성:값, ...} {"no":1,"name":"1","email":"1","password":"1","photo":"1","tel":"1"} 텍스트 형식이기 때문에 프로그래밍 언어나 운영체제에 영향을 받지 않는다. 바이너리 방식에 비해 데이터.. 2020.9.24 일자 수업 : character stream class 실습 - character stream class git/eomcs-java-project/mini-pms-31-a 바이너리보다는 포맷이 가독성이 높아지고, 다른 언어와 플랫폼 간에도 호환성이 높아지는 장점이 있기 떄문에 이번에는 바이트 단위가 아닌 캐릭터 단위로 데이터를 파일에 입출력해볼 것이다. 이때 사용되는 data sink stream class는 FileWriter / FileReader이다. 텍스트 포맷과 바이너리 포맷의 차이점 가독성 바이너리 포맷은 사람이 보기가 불편하지만 텍스트 포맷은 사람이 직접 보고 편집할 수 있다. 전용 애플리케이션 바이너리 포맷은 그 포맷을 이해하는 애플리케이션을 이용해야만 읽고 쓸 수 있지만, 텍스트 포맷은 메모장과 같은 텍스트 에디터만 있으면 읽고 쓸 수 있다... 2020.9.23 일자 수업 : 파일 입출력 실습 - 파일 바이너리 입출력 git/eomcs-java-project/mini-pms-30-a 저번 실습에는 파일을 Filewriter와 FileReader와 Scanner를 통해 csv파일에 직접 문자를 입출력했으나, 이번에는 모든 데이터를 바이트 형식으로 입출력해볼 것이다. Data Sink Stream Class 중에서도 바이트를 입출력하는 도구인 FileInputStream과 FileOutputStream을 사용하여 save, load 메서드를 구현할 것이다. 프로젝트에서 다루는 boardList, memberList, ProjectList, taskList 에 저장되는 각 인스턴스들의 필드 정보를 .data 파일에 저장하려면 각 필드의 데이터 타입을 고려해서 이것들을 바이트로 적절히 변환해야 .. 2020.9.22 일자 수업 : 데코레이터 패턴, 파일 입출력 파일 입출력 git/eomcs-java-basic/src/main/java com.ecoms.io.ex09 데코레이터 패턴(Decorator Patter) GoF의 디자인 패턴 중 하나. 객체의 타입과 호출 가능한 메소드를 그대로 유지하면서 객체에 새로운 책임을 추가할 때 사용한다. 탈부착 가능한 책임을 정의할 때 사용한다. 상속을 통해 서브클래스를 계속 만드는 방법이 비효율적일 때 사용한다. 특히 조합되는 경우의 수가 많으면 서브클래스 수가 폭발적으로 늘어날 수 있다. Concrete Component : 완제품으로 객체를 생성하는데 다른 객체를 필요로 하지않고, 포함할 수도 없다. FileInputStream, ByteArrayInputStream 등이 이에 속한다. Decorator : Concre.. 2020.9.15일자 수업 : 파일 입출력 실습 - 파일 입출력 git/eomcs-java-project-2020/mini-pms-30-a FileReader와 Scanner 파일의 내용을 읽어들이는 객체는 FileReader이다. 그러나 여기서 있는 메서드는 두가지 뿐이다. 바이트를 리턴한는 read()와 byte배열을 받아 그것을 채운 배열을 리턴하는 read() 밖에 없다. 따라서 Scanner라는 플러그인을 장착해서 문자열을 리턴하는 nextLine()과 4바이트 int값을 리턴하는 nextInt()를 사용할 수 있다. 그럼이제 FileReader와 연결된 Scanner만 사용해도 원하는 작업을 할 수가 있다. 훈련 목표 저장된 ./board.csv를 읽어서 각 게시물의 정보를 boardList에 저장하는 loadBoards() 메서드를 .. 2020.9.14일자 수업 : 예외 처리, 파일 입출력 실습 - 예외 처리 git/eomcs-java-project/mini-pms-29 여태까지는 숫자나 Date를 입력할 때 적절한 형식을 입력하지 않으면 프로그램이 종료됐다. 이제는 잘못된 값을 입력하더라도 프로그램이 중단되지 않도록 예외 처리를 해줄 것이다. 훈련 목표 execute() 메서드를 실행하는 와중에 예외가 발생할 수 있는 부분을 찾아 예외 처리를 해준다. 1단계 : 실행하여 예외가 발생할 수 있는 부분과 코드를 찾는다. execute가 실행되는 와중에 번호를 입력해야할 때 숫자가 아닌 문자를 입력하면 다음과 같은 에러가 발생한다. 숫자를 입력해야하는 상황이 다양하기 때문에 각각의 parseInt() 메서드에 예외 처리를 해주는 것보다는 App에서 execute() 부분에 예외 처리를 해주는 .. 이전 1 다음