[Java] 유용한 API (Math, Random, File, Calendar)

sua_ahn·2022년 12월 29일
0

Java

목록 보기
9/15
post-thumbnail

Math class

java.lang package에 있으므로 별도로 import 할 필요 없음
전부 static 메소드이므로 객체를 생성하지 않고 바로 사용할 수 있음

기능메소드리턴 자료형
절댓값abs(int/double, int/double)int/double
최댓값max(int/double, int/double)int/double
최솟값min(int/double, int/double)int/double
올림ceil(double)double
내림floor(double)double
반올림round(double)long
제곱근sqrt(double)double
난수random()0.0 <= double < 1.0

 

random 메소드 사용법

int i = (int)(Math.random() * 10) + 1;			// 1 ~ 10
char c = (char)((Math.random() * 26) + 65);		// 대문자


Random class

java.util package에 있는 난수를 다루는 클래스

기능메소드리턴
무작위 intnextInt()int범위
설정 범위 내 무작위 intnextInt(int n)0 <= int < n
무작위 doublenextDouble()Double범위
무작위 booleannextBoolean()true/false

import java.util.Random;
...

// 객체 생성
Random rand = new Random();
int i = rand.nextInt(10);		// 0 ~ 9


File class

java.io package에 있는 파일 처리 클래스

File : 메모리가 아닌 하드디스크나 보조기억장치에 있는 데이터의 모음

파일 조사

  • list(), listFiles() 로 배열에 저장
    → 반복문 돌면서 파일 조사 (isfile(), isDirectory() 사용)
// 디렉토리 조사
File file = new File("c:\\");
File filelist[] = file.listFiles();

for (int i = 0; i < filelist.length; i++) {
    if (filelist[i].isFile()) {
        System.out.println("[file]" + filelist[i].getName());
    } else if (filelist2[i].isDirectory()) {
        System.out.println("[folder]" + filelist[i].getName());
    } else {
        System.out.println("[?]" + filelist[i].getName());
    }
}

파일 생성 & 삭제

  • 파일 생성 : createNewFile() → IOException 처리 필요
  • 파일 삭제 : delete()
// 파일 생성
File f = new File("c:\\new\\newfile.txt");

try {
    if (f.createNewFile()) {
        System.out.println("Success");
    } else {
        System.out.println("Fail to creat a new file");	// 있으면 다시 안 만듬
    }
} catch (IOException e) {
    e.printStackTrace();
}



// 파일 삭제
f.delete();

if (f.exists()) {
    System.out.println("파일 존재");
} else {
    System.out.println("파일 없음");
}

파일 읽기 & 쓰기

  • 파일 쓰기 : FileWriter (+ PrintWriter, BufferedWriter )

  • 파일 읽기 : FileReader (+ BufferedReader )

// 파일 쓰기
File f = new File("c:\\new\\newfile.txt");

try {
    /* 기본
    FileWriter fwriter = new FileWriter(f);		// 파일 자동 생성

    fwriter.write("Hello\n");
    fwriter.close();							// 꼭 닫아줘야됨

    // 추가쓰기
    FileWriter fwriter = new FileWriter(f, true);
    fwriter.write("Heeeellllooooo");
    fwriter.close();
	*/
    
    PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(f)));
    pw.println("hello");
    pw.close();

} catch (IOException e) {
    e.printStackTrace();
}



// 파일 읽기
try {
    /* 한글자씩 읽기
    FileReader fr = new FileReader(f);
    int ch = fr.read();
    while (ch != -1) {
        System.out.println((char)ch);
        ch = fr.read();
    }
    */

    // 문장으로 읽기
    BufferedReader br = new BufferedReader(new FileReader(f));

    String str = "";
    while ((str = br.readLine()) != null) {
        System.out.println(str);
    }
    br.close();

} catch (IOException e) {
    e.printStackTrace();
}


Calendar class

java.util package에 있는 날짜와 시간을 다루는 클래스

Calendar cal = Calendar.getInstance();

// getter
// 오늘 날짜 취득 
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;		// 0 ~ 11
int day = cal.get(Calendar.DATE);
int weekday = cal.get(Calendar.DAY_OF_WEEK);	// 일(1) ~ 토(7)

// 시간											// 오후 == 1
String ampm = cal.get(Calendar.AM_PM) == 0 ? "오전":"오후";
int hour = cal.get(Calendar.HOUR_OF_DAY);		// 0 ~ 23
int minute = cal.get(Calendar.MINUTE);

// 달의 마지막날
int lastday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

// 1970년 1월 1일 00:00:00.000로부터 지난 시간
long offsetSecond = cal.getTimeInMillis() / 1000;


// setter
cal.set(Calendar.MONTH, 12 - 1);				// 12월

profile
해보자구

0개의 댓글