본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 33일차

by w1z 2022. 6. 13.

 

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>

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


JS과제 

 

BMI 지수 구하기 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<input type="text" placeholder="키를 입력하세요" id="키값">
<input type="text" placeholder="몸무게를 입력하세요" id="몸무게값">    
<button onclick="clac()">입력</button>
<span id="여부"></span>
    <script>
        //가능한 한 정수로 데이터처리하므로 정수로 입력하자 (소수점 XXX)
        function clac(){
        const 키 =document.querySelector('#키값');
        const 키키 = 키.value/100;
        const 몸무게 =document.querySelector('#몸무게값');
        const BMI = 몸무게.value/(키키*키키);
        if(BMI >= 25 ){ 
            document.querySelector('#여부').innerHTML="과체중입니다.";
        }else{
            document.querySelector('#여부').innerHTML="과체중이 아닙니다.";
        }
        }
    </script>
</body> 
</html>

단순계산

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

</head>
<body>
    <div id="ddiv">
    값:<input type="text" id="값">
    <button onclick="계산()">계산</button><br><br>
    짝수여부:<span id="여부"></span> <br><br>
    제곱값:<span id="제곱값"></span>
    </div>

    <script>
        function 계산(){
            const 값 = document.querySelector('#값');
            if (값.value % 2 === 0){
                document.querySelector('#여부').innerHTML="짝수입니다"
            }else{
                document.querySelector('#여부').innerHTML="홀수입니다"
            }
            const 제곱값 =값.value*값.value
            document.querySelector('#제곱값').innerHTML= 제곱값
            

        }
    </script>
</body>
</html>

**const result=kor>=70&&eng>=70? '통과' : '재시험';

조건문도 변수로 만들 수있음 

const 변수 = 조건    ?         반환 ( true:false );