Java 20221108

신래은·2022년 12월 18일

JAVA

목록 보기
16/22

DAY 17

CalendarEx

import java.util.Calendar;

public class CalendarEx {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        System.out.println(c.getTime());
        c.add(Calendar.DATE, -30);
        System.err.println(c.getTime());
        c.set(Calendar.YEAR, 2021);
        c.set(Calendar.MONTH, 10); // 월은 1빼야함
        c.set(Calendar.DATE, 9); 
        System.err.println(c.getTime());
    }
}

CalendarEx02

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
public class CalendarEx02 {
    public static void main(String[] args) {
        Calendar c1 = Calendar.getInstance();
        Calendar c2 = Calendar.getInstance();
        c2.set(Calendar.MONTH, 10);
        c2.set(Calendar.DATE, 28);
        long diff = c2.getTimeInMillis()-c1.getTimeInMillis();
        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
        int interval = (int)(diff/1000/60/60/24);
        List<String> dates = new ArrayList<String>();

        for (int i = 0; i<interval; i++) {
            dates.add(f.format(c1.getTime()));
            c1.add(Calendar.DATE, 1);
        }
        Scanner s = new Scanner(System.in);
        System.out.print("예약할 날짜 (yyyy-MM-dd) : ");
        String strDt = s.nextLine();
        if(dates.contains(strDt)){
            System.out.println("선택한 날짜는 예약하실 수 없습니다.");
        }
        else {
            System.out.println("선택한 날짜로 예약하셨습니다.");
        }
        
        LocalDate ldt = LocalDate.now();
        System.out.println(ldt);
        LocalTime ltime = LocalTime.now();
        System.out.println(ltime);
    }
}

txt 파일을 읽고 쓰는 코드

FileWriteEx

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

public class FileEX01 {
    public static void main(String[] args) throws Exception{
        // 출력 (파일에 쓰기)
        BufferedWriter w = new BufferedWriter(
            new OutputStreamWriter(
                new FileOutputStream(
                    new File ("prod.csv")
                    ), "UTF-8"
            )
        );
        // w.write("name,price, stock\r\n");
        for(int i=0; i< 50; i++) {
        	Product p = new Product();
        	p.name = "제품 " + i;
          	p.price = 20000;
        	p.stock = 100;
        	w.write(p.toString() + "\r\n"); 
            // 파일에서 다음줄로 내려가시오. 
            //커서를 제일 앞으로 당김 carriage return 
            //(맨앞으로 커서를 당긴 후 내려가라.)
        }
        // charater 기본설정은 UTF-8이 아니라 euckr - 인코딩을 맞춰야 함.(UTF-8로 해야 자바에서 출력. MS949는 엑셀)
        w.close();

        File f = new File("a.txt");
        FileOutputStream os = new FileOutputStream(f,true);
        OutputStreamWriter osw = new OutputStreamWriter(os,"UTF-8");
        BufferedWriter writer = new BufferedWriter(osw);
        writer.close();
    }
}

FileReadEx

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class FileEx02  {
    public static void main(String[] args) throws Exception {
        // 입력 (파일 내용 가져오기)
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(
                new FileInputStream(
                    new File("prod.csv")
                ),"UTF-8"
            )
        );
        
        List<Product> plist = new ArrayList<Product>();
        while (true) {
            String line = reader.readLine();
            if(line == null) {
                break;
            }
            String[] split  = line.split(",");
            Product p = new Product();
            p.name = split[0];
            // parseInt  - 숫자로만 이루어진 문자열을 int타입으로 변환
            p.price = Integer.parseInt(split[1]);
            p.stock = Integer.parseInt(split[2]);
            plist.add(p);
        }
        for (Product p : plist) {
            System.out.println("제품명 : " + p.name + " / 가격 : " + p.price + " / 재고 : " + p.stock);     
        }
        reader.close();

        Scanner s = new Scanner(new File("prod.csv"));
        while(true) {
            String line = "";
            try {line = s.nextLine();}
            catch (Exception e) { break; }
            System.out.println(line);
        }
        s.close();
    }
}

0개의 댓글