TIL 23.08.07

ν™©μ€ν•˜Β·2023λ…„ 8μ›” 7일
0

TIL

λͺ©λ‘ 보기
55/146

πŸ“ŒToday I Learned

Java μˆ˜μ—… (ex63~64)

HashSet

  • μˆœμ„œκ°€ μ—†λŠ” 데이터 집합
  • μš”μ†Œλ₯Ό κ΅¬λΆ„ν•˜λŠ” μ‹λ³„μžκ°€ μ—†λ‹€.
  • 데이터 쀑볡을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

μ„ μ–Έ

HashSet<String> set = new HashSet<String>();

μ‚½μž…

set.add(value);

좜λ ₯

System.out.println(set);

-> Collection은 toString()이 μž¬μ •μ˜ λ˜μ–΄ μžˆμ–΄μ„œ λ°”λ‘œ μ΄λ ‡κ²Œ 좜λ ₯ν•  수 μžˆλ‹€.

제거

set.remove(value);

포함 μ—¬λΆ€ 확인

set.contains(value);

파일 μž…μΆœλ ₯

  1. 파일/디렉토리 μ‘°μž‘
  • μœˆλ„μš° νƒμƒ‰κΈ°λ‘œ ν•˜λŠ” λͺ¨λ“  행동 > μžλ°”λ‘œ κ΅¬ν˜„
  • 파일 > 정보 확인, μƒˆλ‘œ λ§Œλ“€κΈ°, 이름 λ°”κΎΈκΈ°, μ΄λ™ν•˜κΈ°, μ‚­μ œν•˜κΈ° λ“±
  • 폴더 > 정보 확인, μƒˆλ‘œ λ§Œλ“€κΈ°, 이름 λ°”κΎΈκΈ°, μ΄λ™ν•˜κΈ°, μ‚­μ œν•˜κΈ° λ“±

    탐색기 μ™Όμͺ½ - 트리 λ·°, TreeView
    탐색기 였λ₯Έμͺ½ - 리슀트 λ·°, ListView

  1. 파일 μž…μΆœλ ₯
  • 파일 > 읽기/μ“°κΈ°
  • λ©”λͺ¨μž₯ κΈ°λŠ₯

μžλ°” ν”„λ‘œκ·Έλž¨μ—μ„œ μ™ΈλΆ€μ˜ νŒŒμΌμ„ μ ‘κ·Ό
1. μ™ΈλΆ€ νŒŒμΌμ„ μ°Έμ‘°ν•˜λŠ” μ°Έμ‘° 객체 생성 > λŒ€λ¦¬μž, μœ„μž„μž
2. μ°Έμ‘° 객체 μ‘°μž‘ > 행동 > μ™ΈλΆ€ νŒŒμΌμ— 적용

파일 참쑰 클래슀 > 객체

File file = new File("C:\\class\\code\\java\\file\\data.txt");

System.out.println(file.exists()); // 항상 검사해야함. 없을 μˆ˜λ„ μžˆλ‹€.

if (file.exists()) {
	System.out.println("파일이 μžˆμŠ΅λ‹ˆλ‹€.");
	System.out.println(file.getName()); // data.txt
	System.out.println(file.isFile()); // true
	System.out.println(file.isDirectory()); // false
	System.out.println(file.length()); // 36 > 파일 크기(λ°”μ΄νŠΈ)
	System.out.println(file.getAbsolutePath()); // C:\class\code\java\file\data.txt

	System.out.println(file.lastModified()); // μˆ˜μ •ν•œ λ‚ μ§œ 1691379560770
	System.out.println(file.isHidden()); // false

	// tick > λ…„μ›”μΌμ‹œλΆ„μ΄ˆ
	Calendar c1 = Calendar.getInstance();
	System.out.println(c1.getTimeInMillis());

	c1.setTimeInMillis(file.lastModified());

	System.out.printf("%tF %tT\n", c1, c1);
} else {
	System.out.println("파일이 μ—†μŠ΅λ‹ˆλ‹€.");

폴더도 μœ„μ˜ 파일과 κ°™λ‹€.

파일 μƒμ„±ν•˜κΈ°

file.createNewFile()

파일λͺ… λ³€κ²½ν•˜κΈ°

File file = new File("C:\\class\\code\\java\\file\\data.txt");
File file2 = new File("C:\\class\\code\\java\\file\\데이터.txt");

if (file.exists()) {
	System.out.println(file.renameTo(file2)); // 파일 이름이 μ•„λ‹Œ 파일 μΈμŠ€ν„΄μŠ€λ₯Ό λ„£μ–΄μ•Ό ν•œλ‹€.
}

파일 μ΄λ™ν•˜κΈ°

// 파일 > μ΄λ™ν•˜κΈ° (κ²½λ‘œμ™€ 이름을 ν•œλ²ˆμ— λ³€κ²½ν•  수 μžˆλ‹€.)
// - C:\\class\\code\\java\\file.data.txt
// - C:\\class\\code\\java\\move/data.txt
File file = new File("C:\\class\\code\\java\\file\\data.txt");
File file2 = new File("C:\\class\\code\\java\\move\\데이터.txt");

if (file.exists()) { // file2에 ν•΄λ‹Ή 폴더가 μ—†μœΌλ©΄ falseκ°€ λœλ‹€.
	System.out.println(file.renameTo(file2)); // 파일 이름이 μ•„λ‹Œ 파일 μΈμŠ€ν„΄μŠ€λ₯Ό λ„£μ–΄μ•Ό ν•œλ‹€.
}

파일 μ‚­μ œν•˜κΈ°

// 파일 > μ‚­μ œν•˜κΈ°
File file = new File("C:\\class\\code\\java\\move\\데이터.txt");

if (file.exists()) {

	// 파일 이동 > νœ΄μ§€ν†΅(o)
	// 파일 μ‚­μ œ > νœ΄μ§€ν†΅(x)
	System.out.println(file.delete()); // μ§€μš΄ 파일 λͺ»μ‚΄λ¦Ό
}

폴더 λ§Œλ“€κΈ°

// 폴더 > λ§Œλ“€κΈ°
//		File dir = new File("C:\\class\\code\\java\\aaa");
File dir = new File("C:\\class\\code\\java\\bbb\\ccc");

if (!dir.exists()) {
//			System.out.println(dir.mkdir()); // 폴더 1개 λ§Œλ“€κΈ° -> bbbμ—†μ–΄μ„œ μ‹€νŒ¨
	System.out.println(dir.mkdirs()); // μ—°κ΄€λœ 폴더 λͺ¨λ‘ ν•¨κ»˜ λ§Œλ“€κΈ° -> bbb\ccc λ‹€ 생성됨

}

νšŒμ›λͺ…μœΌλ‘œ 폴더 μƒμ„±ν•˜κΈ°

// μš”κ΅¬μ‚¬ν•­] νšŒμ› > νšŒμ›λͺ…μœΌλ‘œ 개인 폴더 생성

String[] member = { "홍길동", "μ•„λ¬΄κ°œ", "μ΄μˆœμ‹ ", "ꢌ율", "μœ κ΄€μˆœ" };

for (int i = 0; i < member.length; i++) {
	String path = String.format("C:\\class\\code\\java\\file\\νšŒμ›\\[κ°œμΈν΄λ”]%sλ‹˜", member[i]);
	File dir = new File(path);
	System.out.println(dir.mkdirs());
}

폴더λͺ… λ³€κ²½ν•˜κΈ°

// 폴더 > 이름 λ°”κΎΈκΈ°
File dir = new File("C:\\class\\code\\java\\file\\λ‚ μ§œ");
File dir2 = new File("C:\\class\\code\\java\\file\\할일");

if (dir.exists()) {
	System.out.println(dir.renameTo(dir2));
}

폴더 μ΄λ™ν•˜κΈ°

// 폴더 > μ΄λ™ν•˜κΈ°
File dir = new File("C:\\class\\code\\java\\file\\할일");
File dir2 = new File("C:\\class\\code\\java\\move\\할일");

if (dir.exists()) {
	System.out.println(dir.renameTo(dir2));
}

폴더 μ‚­μ œν•˜κΈ°

// 폴더 > μ‚­μ œν•˜κΈ°
// - 빈 ν΄λ”μΌλ•Œλ§Œ κ°€λŠ₯ν•˜λ‹€.
// - λ‚΄μš©λ¬Ό(파일, μžμ‹ 폴더)이 있으면 μ‚­μ œκ°€ λΆˆκ°€λŠ₯ν•˜λ‹€.
// - 직접 κ΅¬ν˜„
File dir = new File("C:\\class\\code\\java\\move\\할일");

if (dir.exists()) {
	System.out.println(dir.delete());
}

폴더 λ‚΄μš© 보기

// ν΄λ”μ˜ λ‚΄μš© 보기(μžμ‹ 폴더, 파일)
String path = "C:\\class\\dev\\eclipse";

File dir = new File(path);

if (dir.exists()) {
	// 탐색기 λŠλ‚Œ
	File[] list = dir.listFiles();

	for (File d : list) {
		if (d.isDirectory()) {
			System.out.printf("[%s]\n", d.getName());
		}
	}

	for (File f : list) {
		if (f.isFile()) {
			System.out.println(f.getName());
		}
	}
}

ν΄λ”μ˜ 파일 개수 μ„ΈκΈ° (제일 μ€‘μš”)

// νŠΉμ • 폴더 > 파일 개수 μ„ΈκΈ°
File dir = new File("C:\\class\\dev\\eclipse");

if (dir.exists()) {
	countFile(dir);

	System.out.printf("총 파일 개수: %,d개\n", count);
	System.out.printf("총 폴더 개수: %,d개\n", dcount);
	System.out.printf("총 폴더 크기: %,d λ°”μ΄νŠΈ\n", length);
}

private static void countFile(File dir) {
	// 1. λͺ©λ‘ κ°€μ Έμ˜€κΈ°
	File[] list = dir.listFiles();

	// 2. 파일 개수
	for (File subfile : list) {
		if (subfile.isFile()) {
			count++;
			length += subfile.length(); //파일 크기λ₯Ό λˆ„μ 
		}
	}

	// 3. μžμ‹ 폴더λ₯Ό λŒ€μƒμœΌλ‘œ 1~2λ²ˆμ„ 반볡
	for (File subdir : list) {
		if (subdir.isDirectory()) {
			dcount++;
			// 1~2번 μ‹€ν–‰ > 3번 > μ†μž 폴더
			countFile(subdir); // μžμ‹ 폴더 > 반볡
		}
	}
}

파일 μƒμ„±ν•˜κΈ°

file.createNewFile()

문제 풀이

μ§€λ‚œ μ‹œκ°„μ— 과제둜 λ‚΄μ€€ 문제 쀑 Q104 문제λ₯Ό ν•¨κ»˜ ν’€μ—ˆλ‹€.

과제

108~119

profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€