반응형

# BufferedReader / BufferedWriter

## BufferedReader 

  • 버퍼를 이용하여 읽고 쓰는 함수, 버퍼를 이용하기 때문에 입출력의 효율이 좋아진다.
  • Scanner의 경우 띄어쓰기와 엔터를 경계로 인식하기 때문에 따로 가공 할 필요가 없어 사용이 편리하다.
  • BufferedReader의 경우 엔터만 경계로 인식, 입력받은 데이터가 모두 String으로 고정되지만, Scanner에 비해 빠르다.
1. 콘솔로 입력 받는 경우
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

String s = bf.readLine(); //String

int i = Integer.parseInt(bf.readLine()); //Int 

bf.close();


2. 파일로 입력받는 경우
FileReader file = new FileReader("파일명.java");
BufferedReader bf = new BufferedReader(file);

 

## BufferedWriter

  • BufferedWriter은 System.out.print("")과 동일하게 사용 가능한 함수이다.
BufferedWriter bf = new BufferedWriter(new FileWriter("BufferedWriter.txt"));


1. 출력
bf.write("출력할 내용");


2. 개행 ( newLine() or \n )
bf.newLine();
bf.write("출력내용\n");


3. 남은 데이터 모두 출력
bf.flush();


4. 스트림
bf.close();

 

## 사용 예제

import java.io.*;

class Main {
  public static void main(String[] args) throws IOException {

    BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

    int num = Integer.parseInt(bf.readLine());

    for ( int i = 0; i < num; i++ ) {
      String temp = bf.readLine();
      String[] arr = temp.split(" ");
      int a = Integer.parseInt(arr[0]);
      int b = Integer.parseInt(arr[1]);
      bw.write((a+b) + "\n");
    }
    
    bw.flush();
    bw.close();

  }
}
반응형
반응형

# 스프링 부트 스케줄러 적용방법

## EnableScheduling

  • 스프링 부트 프로젝트에서 Application에 아래의 어노테이션 적용
@EnableScheduling
  • 적용 예
package com.sbs.lhh.hp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class HpApplication {

	public static void main(String[] args) {
		SpringApplication.run(HpApplication.class, args);
	}

}

## Scheduled

  • 스케줄 작업을 진행할 항목에 아래의 어노테이션 적용
@Scheduled( 시간 설정 )
  • 적용 예
@Scheduled(cron = "0 0/30 * * * ?")
	public void autoGetCovid19Status() {
		System.out.println("작동확인");
		List<CovidData> covidDatas = articleService.getCovidData();
		
		List<CovidData> covidDataList;
		
		if ( covidDatas.isEmpty() ) {
			try {
				covidDataList = crawlingService.getCovidDatas();
				for (CovidData data : covidDataList) {
					articleService.setCovidData(data);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}	
		} else {
			try {
				covidDataList = crawlingService.getCovidDatas();

				for (CovidData data : covidDataList) {
					articleService.setCovidDataUpdate(data);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
반응형
반응형

# 게시판 리스팅되는 시간 측정 방법

  • controller에서 게시판 리스팅 되는 부분에 아래 코드를 입력하여 콘솔로 게시판 리스팅되는 시간을 측정할 수 있다.
// 게시판 리스팅 되는데 걸리는 시간 측정용
long startTime = System.nanoTime();

long endTime = System.nanoTime();
long estimatedTime = endTime - startTime;
nano seconds to seconds
double seconds = estimatedTime / 1000000000.0;
반응형
반응형

# 영어 등 줄바꿈 설정

  • 한글은 줄바꿈이 가능하지만, 영어는 줄바꿈이 존재하지 않음.
  • 아래 값을 추가하여 줄바꿈 가능하도록 설정.
  • word-break: break-all;
반응형

+ Recent posts