- 오늘의 평가 및 느낀 점 -
=> 어제는 강남역 스터디룸에서 세미 팀프로젝트 조원들과 회의 및 공부를 했다. JDBC 숙제를 내주었더니 아쉽게 완성까진 아니더라도 어느정도 해온 거에 칭찬을 해주고 싶었다. 심지어 자기가 막힌 부분에서 질문을 준비 해 온것이 아주 기특했다. sh 형도 확실히 하시려는게 보이기 때문에 마음이 한결 편해졌다. 이대로만 해주시면 좋겠다. DAO 클래스 메소드를 만드는 것을 어느정도 시킨 후에 다시 전체적인 프로그램의 흐름을 설명해 주면서 질문을 콕콕 던지니 대답을 잘하는 부분과 노트에 받아 적는 모습이 아주 만족스러웠다. 이제야 이해가 되었다는 말을 들으니 우리 팀프로젝트도 희망이 있다는 느낌을 받았다. 이대로만 해주면 좋겠다. JDBC를 마치고 전체적인 팀프로젝트 회의에 들어갔다. 우리팀은 타고난 실력자는 없지만 정보가 많기 때문에 그 것을 무기삼아 임할 것이다. 대략적인 메인 페이지의 구성과 사이트의 이름과 디자인을 정하기로 회의했고, 어떤 페이지를 만들어야 할 것인지 회의를 했다. 그리고 DB 설계도를 보며 어떤 흐름인지 분석을 마쳤다.
희의가 끝나고 운동을 마친 후 나가사끼 짬뽕을 먹고 집에 와서 아쉽게 참석하지 못한 새로운 팀원 kb에게 회의 내용을 전달하기 위해 디스코드 음성 통화를 진행했다. 이 친구는 실력이 어느정도 인지 모르겠지만 자신감있게 하는 모습이 아주 마음에 들었다. sh형도 참석을 해주셔서 공부를 하시는 모습이 인상적이었다. 그렇게 하루종일 정신 없게 팀원들 챙기며 희의와 공부를 하다보니 블로그 작성을 깜빡했다.. 이런 경우는 또 처음이네.
=> 아침 10시 친구와 등운동을 마치고 집에와서 30분을 자고 나와 바로 카페에 도착해서 블로그를 정리하는 중이다. 3시부터 kb팀원과 파일 입출력 공부를 진행할 생각이다. 오늘 10시에 파일 입출력 예제와 특강을 준비해야하기 때문에 또 이제부터 집중하고 빡세게 시작해야겠어.
- 이번 주 공부 계획 -
> JS로 Todo List 만들기
> JQuery, Servlet 잘 복습
> 팀프로젝트 시도 때도 없이 구상 및 팀원들 시킬 거 생각하기
- 공부 내용 -
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileProgram {
public void start() throws NumberFormatException, IOException {
BufferedReader brr = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.println("[파일 입출력 예제 실행..]");
System.out.println("1. 파일 복사하기");
System.out.println("2. 파일 읽기");
System.out.println("3. 파일로 쓰기");
System.out.println("4. 프로그램 종료");
System.out.print("[메뉴 선택] (번호 입력할 것.>");
int select = Integer.parseInt(brr.readLine());
switch (select) {
case 1:
copy();
break;
case 2:
fileRead();
break;
case 3:
fileWrite();
break;
case 4:
System.exit(0);
default:
throw new IllegalArgumentException("Unexpected value: " + select);
}
}
}
private void fileWrite() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("파일에 작성할 내용을 입력하시오 =>");
String txt = br.readLine();
FileWriter fw = new FileWriter();
fw.write(txt);
fw.flush(); // 현재 문장은 완성이야 보내
System.out.println("파일에 글 입력이 완료 되었습니다.");
fw.close();
// fw.close() 바이트는 안해도 되는데 캐릭터는 close()를 해줘야 입력저장이 된다.
} catch (IOException e) {
System.out.println("예외 발생.");
}
}
private void fileRead() {
try {
File f = new File("C:\\JavaFile", "test1.txt");
FileReader fr = new FileReader(f);
// 한 줄씩 읽기
BufferedReader br = new BufferedReader(fr);
while (true) {
String str = br.readLine();
if (str == null)
break; // 다음 값 널이면 하지마
System.out.println(str);
}
} catch (FileNotFoundException e) {
System.out.println("파일이 존재 x ");
} catch (IOException e) {
System.out.println("파일 읽기 에러 발생");
}
}
private void copy() {
try {
File orgFile = new File("C:\\JavaFile/lion.jpg");
if (orgFile.exists()) {// 복사할 파일이 있으면 복사하고
String filename = orgFile.getName(); // 파일 이름 가져오기
File tarFile = new File("C:\\python_activity", filename);
// 복사할 곳에 tarFile이 존재하는지 확인 후 없으면 복사하고 있으면 파일명 변경
if (tarFile.exists()) { // 파일이 존재하냐
// 파일명을 변경
int point = filename.lastIndexOf("."); // 문자열에서 마지막 .의 위치
String fName = filename.substring(0, point); // 파일명(확장자 제외)
String ext = filename.substring(point + 1);// 확장자 뽑아오기
int cnt = 1; // 몇 번째 복사 파일인지
while (true) {
String newName = "[" + cnt++ + "번째 복사 된]" + fName + "." + ext;
tarFile = new File("C:\\python_activity", newName);
if (!tarFile.exists()) {
System.out.println("파일이 이미 있습니다.");
break; // 이미 있으니
}
}
}
FileInputStream fis = new FileInputStream(orgFile); // 읽고
FileOutputStream fos = new FileOutputStream(tarFile);// 쓰기
byte inData[] = new byte[(int) orgFile.length()]; // 파일에서 코드를읽어서 담을 배열을 선언. newbyte에 int 밖에 넣을 수 없으니 형변환
fis.read(inData, 0, inData.length);
fos.write(inData, 0, inData.length); // byte배열의 크기만큼 한번에 쓰기
} else {
System.out.println("파일이 존재하지 않는다.");
}
System.out.println("복사 완료.");
} catch (Exception e) {
System.out.println("예외 발생 =>" + e.getMessage());
}
}
}
=> 어제 만든 간단한 파일 입출력 예제
- 세미 팀플 -
JDBC
- 30분까지만
- 흐름 발표
스터디 회의
- 세부 기능 회의 (버튼 별 액션, 페이지라던지.. 간략하게)
- DB 분석 (되면)?
- 파일 입출력은 혼자해야겠다.
메인페이지
⇒ 사이트 로고는 (DH님)
⇒ 위에 비디오
⇒ 중간 라인 베스트 3개 사진 넣고 설명 바꾸고
⇒ 인스타 없애기
⇒ 밑에 구글어스 없애기 (구글 지도는 아이티윌)
⇒ 밑에 이미지 변경
⇒ 여성 향수빼고 중성향만
사이트 명 :
muškiMusky (남자 다운 향) DH님 아이디어
사이트 소개 :
⇒ 스토리 쓸 때 운동 후 스포츠 향 써도 될 것 같음.
데이터베이스 :
⇒ 툴 이용해서 하면 좋을 것 같음 ㅇㅋ.
- 스터디 계획 및 결과 -
> 파일 입출력 예제 및 특강 진행 예정
> 아주 잘 이해 되었음. 직렬화 중요
> 파일 입출력을 세미프로젝트의 어느 부분에 사용할 것인지
'레거시' 카테고리의 다른 글
2021.1.4의 기록 (0) | 2022.01.04 |
---|---|
2022.1.3의 기록 (0) | 2022.01.03 |
2021.12.31의 기록 (0) | 2021.12.31 |
2021.12.30의 기록 (0) | 2021.12.30 |
2021.12.29의 기록 (0) | 2021.12.29 |