본문 바로가기
교육/Java

JAVA 개발자 수업 22일차 - 스택(Stack)과 큐(Queue)

by yhyuk 2021. 4. 27.
728x90
반응형

1. 스택(Stack)과 큐(Queue)

2. 파일(File)


1. 스택(Stack)과 큐(Queue)

스택(Stack) : 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out) 구조이다. (후입선출)
큐(Queue)   :     처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO(First In First Out) 구조이다. (선입선출)

사진 출처: https://pridiot.tistory.com/68

[스택(Stack) 메서드]

Stack<String> stack = new Stack<String>();

//요소 추가
stack.push("빨강");
stack.push("파랑");
stack.push("노랑");

//요소에서 읽을 공 확인(조사) --> 요소 값에는 변화가 없다
System.out.println(stack.peek());

//요소 값 개수
System.out.println(stack.size());

while (stack_size() > 0) { 
	System.out.println(stack.pop()); //요소 읽기 및 삭제(데이터가 빠져나가므로, 없어짐)
}


//output
노랑
3
노랑
파랑
빨강

 

[큐(Queue) 메서드]

//큐는 클래스가 아닌 인터페이스라서 객체 생성이 불가하다.
//따라서 자식클래스로 객체를 만들어야한다.
Queue<String> queue = new LinkedList<String>();

//요소 추가
queue.add("빨강");
queue.add("파랑");
queue.add("노랑");

//요소 확인(조사)
System.out.println(queue.peek());

//요소 값 개수
System.out.println(queue.size());

//요소 읽기 및 삭제
while (queue.size() > 0) {
	System.out.println(queue.poll());
}


//output
빨강
3
빨강
파랑
노랑

 

2. 파일(File)

[정의]

- Java에서 File클래스 통해서 해당 PC 외부의 파일(file)과 디렉토리(dir)를 조작할 수 있다.

- 외부 파일 접근 > 파일에 대한 참조 객체  생성 >참조 객체 조작 > 외부 파일 조작

 

[특정 파일(file) 정보 얻기]

//경로 지정
String path = "D:\\class\\java\\m1.txt"; 

//참조 객체 생성
File file = new File(path);

//자주 이용하는 메소드
System.out.println("파일 존재 유무? :" + file.exists());
System.out.println("파일명 확인 : " + file.getName());
System.out.println("파일인지, 확인 : " + file.isFile());
System.out.println("폴더인지, 확인" + file.isDirectory());
System.out.println("파일크기(Byte) : " + file.legnth());
System.out.println("경로 위치:" + file.getPath());
System.out.println("경로 위치:" + file.getAbsolutePath());


//output
파일 존재 유무 ? : true
파일명 확인 : m1.txt
파일인지, 확인 : true
폴더인지, 확인 : false
파일크기(Byte) : 26
경로 : D:\class\java\m1.txt
경로 : D:\class\java\m1.txt

 

[특정 폴더(dir) 정보 얻기]

//경로 지정
String path = "D:\\class\\java"; 

//참조 객체 생성
File dir = new File(path);

//자주 이용하는 메소드
System.out.println("존재 유무? :" + dir.exists());
System.out.println("폴더명 확인 : " + dir.getName());
System.out.println("파일인지, 확인 : " + dir.isFile());
System.out.println("폴더인지, 확인" + dir.isDirectory());
System.out.println("경로 위치:" + dir.getPath());
System.out.println("경로 위치:" + dir.getAbsolutePath());
System.out.println("읽기? :" + dir.canRead());
System.out.println("쓰기? :" + dir.canWrite());
System.out.println("숨김? :" + dir.isHidden());
//폴더(dir)에서 length() 메소드는 안쓰인다.

//output
존재 유무 ? : true
파일명 확인 : java
파일인지, 확인 : false
폴더인지, 확인 : true
경로 : D:\class\java
경로 : D:\class\java
읽기? : true
쓰기? : true
숨김? : false

 

[파일조작, 1.이동]

//이동할 파일 참조 객체
String path = "D:\\class\\java\\file\\AAA\\m3.txt";
File file = new File(path);
		
//이동이 끝난 뒤에 모습을 참조할 객체
String path2 = "D:\\class\\java\\file\\BBB\\m3.txt";
File file2 = new File(path2);

//이동하기(boolean 반환) : renameTo()
boolean result = file.renameTo(file2);
System.out.println(result);


//output 
true
AAA폴더에 있는 m3.txt파일이 BBB폴더로 이동함

 

[파일조작, 2. 이름바꾸기]

String path = "D:\\class\\java\\file\\AAA\\m3.txt";
File file = new File(path);

String path2 = "D:\\class\\java\\file\\AAA\\m4.txt";
File file2 = new File(path2);

file.renameTo(file2);

//path에 있는 경로 주소값에 원하는 파일명 입력하면됨.
//output
AAA폴더에 있는 m3.txt파일 이름이 m4.txt로 변경됨.

 

[파일조작. 3.삭제]

//일단 삭제가 되면 복구가 불가능하다. (휴지통으로 안감)

String path = "D:\\class\\java\\file\\AAA\\m3.txt";
File file = new File(path);

System.out.println(file.delete());


//output
AAA폴더에 있는 m3.txt 파일 삭제됨.

MEMO>

# 운영체제에서 파일과 폴더는 동일한 객체이며, 정확히는 폴더는 파일의 한 종류이다. (공간이 절대 아님.)

 

# 이제 곧 다음주부터 프로젝트 한다고한다. 복습 철저히 하면서 기본기를 다지자.

 

 

728x90
반응형

댓글