Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 참조형변수
- oracle
- 다형성
- 컬렉션 타입
- exception
- 대덕인재개발원
- 사용자예외클래스생성
- 예외처리
- 오라클
- 자바
- 컬렉션프레임워크
- 메소드오버로딩
- cursor문
- 한국건설관리시스템
- 객체 비교
- NestedFor
- 환경설정
- GRANT VIEW
- 집합_SET
- 어윈 사용법
- 정수형타입
- 예외미루기
- 제네릭
- 인터페이스
- 생성자오버로드
- abstract
- Java
- 자동차수리시스템
- 추상메서드
- EnhancedFor
Archives
- Today
- Total
거니의 velog
(11) 토요일 수업 2 본문
1. 사업관리팀
2. 품질관리팀
3. 공통기술팀
4. DB 팀
5. 응용기술팀
package ddit.chap13.test;
import java.util.HashMap;
/**
* - HashMap의 기능을 그대로 사용하고 싶음
* - 단 (key,value)의 구성 중 key는 String으로만 받고 싶음
* - new HashMap()으로 생성하는 대신에 init() 함수로 생성하도록 구성
* - getString(String key) 함수를 만들어서 String 반환하는 함수 제공
* - getInt(String key) 함수를 만들어서 Integer 반환하는 함수 제공
* - 반환타입을 동적으로 반환할 수 있는 함수 제공
*
* - 현재 ParamMap 클래스의 파일 읽어서 콘솔에 나타내기
*/
public class ParamMap extends HashMap<String, Object> {
private ParamMap() {}
public static ParamMap init() { // ParamMap.init()
return new ParamMap();
}
public String getString(String key) {
Object object = this.get(key);
if(object == null) {
return null;
}else {
return String.valueOf(object);
}
// return (String) object; => 위험함
}
public Integer getInt(String key) { // 래퍼클래스(Integer)의 참조형은 null을 가질 수 있다.
Object object = this.get(key);
if(object == null) {
return null;
}else {
return Integer.parseInt(String.valueOf(object));
}
}
public <T> T get(String key, Class<T> clazz) {
Object object = this.get(key);
if(object == null) {
return null;
}
return (T) object; // exception이 발생할 것임.
}
}
package ddit.chap13.test;
public class Test01 {
public static void main(String[] args) {
ParamMap param = ParamMap.init();
param.put("test1", "testvalue");
param.put("test2", 2);
StringBuffer sb = new StringBuffer("test3==========");
param.put("test3", sb);
String p1 = param.getString("test1");
String p2 = param.getString("test2");
String p3 = param.getString("test3");
Integer p4 = param.getInt("test2");
StringBuffer p5 = param.get("test3", StringBuffer.class);
System.out.println(p1);
System.out.println(p2);
System.out.println(p3);
System.out.println(p4);
System.out.println(p5);
}
}
package ddit.chap13.test.util;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.List;
public class FileUtil {
public static void read3(String path) throws Exception {
// 작업절차 : 객체생성 -> 작업 -> 종료
BufferedReader fr = new BufferedReader(new FileReader(path));
//char[] ch = new char[500]; // 자동으로 담을 그릇을 만들었음.
while(true) {
String readLine = fr.readLine(); // 개행문자 단위로 힘껏 끌어 담는 것.
if(readLine == null) { break; }
System.out.println(readLine);
}
fr.close();
}
public static void read2(String path) throws Exception {
// 작업절차 : 객체생성 -> 작업 -> 종료
FileReader fr = new FileReader(path);
//char[] ch = new char[1024]; // 그룹단위로 끌고 옴. 방을 0~1023개 만든 상태. 여기에 한 글자씩 집어 넣겠다는 것.
char[] ch = new char[500]; // 그룹단위로 끌고 옴. 방을 0~1023개 만든 상태. 여기에 한 글자씩 집어 넣겠다는 것.
while(true) {
int read = fr.read(ch); // read : 읽은 글자의 수, ch : 읽은 데이터
if(read == -1) break;
// String str = new String(ch); // 이대로 하면 남은 공간에 글자가 덮어쓰기 되므로 메모리 낭비가 일어남.
String str = new String(ch, 0, read);
System.out.print(str);
System.out.println(read); // 500 500 177
}
fr.close();
}
public static void read(String path) throws Exception {
// 작업절차 : 객체생성 -> 작업 -> 종료
FileReader fr = new FileReader(path);
//char[] ch = new char[1024]; // 그룹단위로 끌고 옴
while(true) {
//int read = fr.read(ch);
int read = fr.read(); // read : 읽은 문자의 값, io의 접속단위가 너무 많음.
if(read == -1) break;
//System.out.println(read);
System.out.print((char)read);
}
fr.close();
}
public static List<String> readList(String path) {
return null;
}
public static void main(String[] args) throws Exception {
String path = "D:\\A_TeachingMaterial\\01_BasicJava\\workspace\\chapter13\\src\\ddit\\chap13\\test\\base\\ParamMap.java";
//read(path);
//read2(path);
read3(path);
}
}