문제 

https://www.acmicpc.net/problem/10813

 

n개 바구니, 바구니안에는 공이 1개씩 있음

바구니 2개선택, 바구니 안에 있는 공을 서로 교환

m번 반복

 

 

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args)throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringBuilder sb = new StringBuilder();
		
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		
		int n = Integer.parseInt(st.nextToken()); // 바구니 개수
		int m = Integer.parseInt(st.nextToken()); // 반복 횟수
		
		int[] basket = new int[n]; // 바구니 n 개
		
		for(int i = 0 ; i < n ; i++ ) { // 초기 바구니 공 값 세팅
			basket[i] = i+1;
		}
		for(int i = 0 ; i < m ; i ++ ) { // 공바꾸기	
			st = new StringTokenizer(br.readLine()," ");
			int first  = Integer.parseInt(st.nextToken());
			int second  = Integer.parseInt(st.nextToken());
			int tmp;
			tmp = basket[first-1];
			basket[first-1] = basket[second-1];
			basket[second-1] = tmp;
		}
		
		for(int i = 0 ; i < n ; i++ ) { 
			sb.append(basket[i]).append(" ");
		}

        bw.write(sb.toString().trim());
        bw.flush();
		bw.close();
		br.close();        
       
    }
}

'개인공부 > 백준코딩연습' 카테고리의 다른 글

[1차원 배열] - 공 넣기  (0) 2024.08.16
[1차원 배열] - 최댓값  (0) 2024.08.12
[1차원 배열] - 최소, 최대  (0) 2024.08.12
[1차원 배열] - X보다 작은 수  (0) 2024.08.12
[1차원 배열] - 개수 세기  (0) 2024.08.12

문제

https://www.acmicpc.net/problem/10810

 

총  n개 바구니와  1~n번까지 번호가 적혀있는 공 여러 개 있음


1. 맨 처음 바구니안에는 공이 x . 바구니에 공을 넣을 때는 공1개만 넣기
2. 공을 넣을 바구니 범위를 정하고, 정한 바구니에 모두 같은 번호가 적혀있는 공을 넣기

     i~j번 바구니에 k번 공을 넣음 ( 1 ≤ i ≤ j ≤ N, 1 ≤ k ≤ N )

     (if 기존에 공이 있으면 기존 공을 빼고 새로 넣는다.)
3. m번 반복
4. 최종 각 바구니에 들어있는 공 번호 출력

첫 번째 문제 풀이

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringBuffer sb = new StringBuffer();
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		
		int n = Integer.parseInt(st.nextToken()); // 바구니 개수
		int m = Integer.parseInt(st.nextToken()); // 반복 횟수
		
		int[] numbers = new int[n]; // 바구니 n 개
		for(int a = 0 ; a < m ; a ++ ) {	
			st = new StringTokenizer(br.readLine()," ");
			int i  = Integer.parseInt(st.nextToken());
			int j  = Integer.parseInt(st.nextToken());
			int k  = Integer.parseInt(st.nextToken());
			for( int b = i ; b <= j ; b++   ) {
					numbers[b-1]= k;
			}			
		}
		for(int c = 0 ; c < n ; c++ ) {
			sb.append(numbers[c]).append(" ");	
		}
		bw.append(sb);
		bw.close();
		br.close();        
    }
}

 

 

 

 

두 번째 풀이 : ChapGPT에 코드개선해 달라고 요청하니 GPT 왈

StringBuffer 대신 StringBuilder를 사용하는 것이 좋습니다. StringBuffer는 동기화를 지원하여 멀티스레드 환경에서 안전하지만, 이 경우에는 필요하지 않습니다.
StringBuilder는 멀티스레딩을 지원하지 않지만, 단일 스레드 환경에서는 더 빠릅니다.
import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringBuilder sb = new StringBuilder();
		
		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		
		int n = Integer.parseInt(st.nextToken()); // 바구니 개수
		int m = Integer.parseInt(st.nextToken()); // 반복 횟수
		
		int[] numbers = new int[n]; // 바구니 n 개
		for(int a = 0 ; a < m ; a ++ ) {	
			st = new StringTokenizer(br.readLine()," ");
			int i  = Integer.parseInt(st.nextToken());
			int j  = Integer.parseInt(st.nextToken());
			int k  = Integer.parseInt(st.nextToken());
			for( int b = i ; b <= j ; b++   ) {
					numbers[b-1]= k;
			}			
		}
		
		for(int c = 0 ; c < n ; c++ ) {
			sb.append(numbers[c]).append(" ");	
		}
        bw.write(sb.toString().trim());
        bw.flush();
		bw.close();
		br.close();       
    }
}

 

'개인공부 > 백준코딩연습' 카테고리의 다른 글

[1차열 배열] - 공 바꾸기  (0) 2024.08.19
[1차원 배열] - 최댓값  (0) 2024.08.12
[1차원 배열] - 최소, 최대  (0) 2024.08.12
[1차원 배열] - X보다 작은 수  (0) 2024.08.12
[1차원 배열] - 개수 세기  (0) 2024.08.12

 

문제 

https://www.acmicpc.net/step/6

 

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.

 

풀이 :

import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringBuffer sb = new StringBuffer();
		
		int[] numbers = new int[9];
		int biggest = 0;
		int n = 0;
	
		for(int i = 0 ; i < 9 ; i ++) {
			numbers[i] = Integer.parseInt(br.readLine());			
			if( biggest < numbers[i] ) {
				biggest = numbers[i];
				n = i+1;
			}
		};
			sb.append(biggest).append("\n").append(n);
			bw.write(String.valueOf(sb));
			bw.close();
			br.close();
    }
}

'개인공부 > 백준코딩연습' 카테고리의 다른 글

[1차열 배열] - 공 바꾸기  (0) 2024.08.19
[1차원 배열] - 공 넣기  (0) 2024.08.16
[1차원 배열] - 최소, 최대  (0) 2024.08.12
[1차원 배열] - X보다 작은 수  (0) 2024.08.12
[1차원 배열] - 개수 세기  (0) 2024.08.12

문제 

https://www.acmicpc.net/problem/10818

 

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

 

첫 번째 풀이 

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int n = Integer.parseInt(br.readLine());
		int[] numbers = new int[n];
		int biggest = 0;
		int smallest = 0;
		
		StringBuffer sb = new StringBuffer();		
		StringTokenizer st = new StringTokenizer(br.readLine()," ");

		for(int i = 0 ; i < n ; i ++) {	
			numbers[i] = Integer.parseInt(st.nextToken());
		};
		
		smallest = numbers[0];
		biggest = numbers[0];
		
		for(int i = 0 ; i < n ; i ++) {	
			if( smallest > numbers[i] ) {
				smallest = numbers[i];
			}
			else if( biggest < numbers[i] ) {
				biggest = numbers[i];
			}
		};

		sb.append(String.valueOf(smallest)).append(" ").append(String.valueOf(biggest));
        bw.write(String.valueOf(sb));
        bw.close();
        br.close();
        
    }
}

 

 

두 번째 풀이 : 뭔가 복잡한 것 같아서 chat gpt에 코드 개선 요청해 봄 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int smallest = Integer.MAX_VALUE;
        int biggest = Integer.MIN_VALUE;

        for (int i = 0; i < n; i++) {
            int num = Integer.parseInt(st.nextToken());
            if (num < smallest) {
                smallest = num;
            }
            if (num > biggest) {
                biggest = num;
            }
        }
        StringBuilder sb = new StringBuilder();
        sb.append(smallest).append(" ").append(biggest);

        bw.write(sb.toString());
        bw.flush();
        bw.close();
        br.close();
    }
}

 

개선 사항 :
1. StringBuilder 사용 최적화 : StringBuilder에 직접 정수 값을 추가하여 성능을 높임
2. Integer.MAX_VALUE 및 Integer.MIN_VALUE 사용 : smallest와 biggest를 초기화할 때 Integer.MAX_VALUE와 Integer.MIN_VALUE를 사용하여 모든 가능한 값과 비교할 수 있음
3. 불필요한 변환 제거 :  String.valueOf()를 제거하고 직접 StringBulder에 정수를 추가

 

 

 

 

세 번째 풀이

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int n = Integer.parseInt(br.readLine());
		int[] numbers = new int[n];
		int biggest = 0;
		int smallest = 0;
		
		StringBuffer sb = new StringBuffer();		
		StringTokenizer st = new StringTokenizer(br.readLine()," ");

		for(int i = 0 ; i < n ; i ++) {	
			numbers[i] = Integer.parseInt(st.nextToken());
		};
		
		smallest = numbers[0];
		biggest = numbers[0];
		
		for(int i = 0 ; i < n ; i ++) {	
			if( smallest > numbers[i] ) {
				smallest = numbers[i];
			}
			else if( biggest < numbers[i] ) {
				biggest = numbers[i];
			}
		};

			sb.append(smallest).append(" ").append(biggest);
			bw.write(String.valueOf(sb));
			bw.close();
			br.close();
        
    }
}

 

개선해도 시간이 드라마틱하게 줄어드는 것 같지 않아

다시 이전코드에서 불필요한 변환만 제거 해 보았음

 

 

네 번째 풀이 : Arrays.sort()를 사용하여 배열 정렬하기

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int n = Integer.parseInt(br.readLine());
        int[] numbers = new int[n];

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        for (int i = 0; i < n; i++) {
            numbers[i] = Integer.parseInt(st.nextToken());
        }

        Arrays.sort(numbers);

        StringBuilder sb = new StringBuilder();
        sb.append(numbers[0]).append(" ").append(numbers[n-1]);

        bw.write(sb.toString());
        bw.flush();  
        bw.close();
        br.close();
        
    }
}

 

시간이 아주 많이..... 늘었다 ...

'개인공부 > 백준코딩연습' 카테고리의 다른 글

[1차원 배열] - 공 넣기  (0) 2024.08.16
[1차원 배열] - 최댓값  (0) 2024.08.12
[1차원 배열] - X보다 작은 수  (0) 2024.08.12
[1차원 배열] - 개수 세기  (0) 2024.08.12
[반복문] - A+B - 4  (1) 2024.08.12

 

문제 

https://www.acmicpc.net/problem/10871

 

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

 

첫 번째 풀이 

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws Exception{
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int n = Integer.parseInt(st.nextToken());
		int x = Integer.parseInt(st.nextToken());
		
		int[] numbers = new int[n];
		List<Integer> smallNumbers = new ArrayList<>();
		
		StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
		
		for(int i = 0 ; i < n ; i ++) {	
				numbers[i]=(Integer.parseInt(st2.nextToken()));				
				if ( numbers[i] < x  ) {
					smallNumbers.add(numbers[i]);
				}	
		};
		
			bw.write(String.valueOf(smallNumbers).replace(",","").replace("[","").replace("]",""));
			bw.close();
			br.close();
                
    }
}

 

 

두 번 째 풀이 : 첫 번째 풀면서 뭔가 지저분 함... 다른 사람들 코딩 참고하여 수정

출력할 때 배열에 안 넣고 StringBuffer 이용

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		StringTokenizer st = new StringTokenizer(br.readLine()," ");
		int n = Integer.parseInt(st.nextToken());
		int x = Integer.parseInt(st.nextToken());
		
		int[] numbers = new int[n];
		StringBuffer sb = new StringBuffer();
		StringTokenizer st2 = new StringTokenizer(br.readLine()," ");
        
		for(int i = 0 ; i < n ; i ++) {	
              numbers[i]=(Integer.parseInt(st2.nextToken()));				
              if ( numbers[i] < x  ) {
                  sb.append(numbers[i]).append(" ");
              }	
		};
		
			bw.write(String.valueOf(sb));
			bw.close();
			br.close();

    }
}

'개인공부 > 백준코딩연습' 카테고리의 다른 글

[1차원 배열] - 최댓값  (0) 2024.08.12
[1차원 배열] - 최소, 최대  (0) 2024.08.12
[1차원 배열] - 개수 세기  (0) 2024.08.12
[반복문] - A+B - 4  (1) 2024.08.12
[반복문] - A+B - 5  (0) 2024.08.12

 Gson이란 ?

* Gson은 Google에서 개발한 Java 기반의 라이브러리
* Java 객체와 JSON 문자열 간의 변환을 쉽고 효율적으로 수행할 수 있게 해주는 도구
* 다양한 커스터마이징 옵션을 제공



`Gson`을 이용한 Json 파싱 예제


1) 의존성 추가

<dependency>
    <groupId>cohttp://m.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.8</version>
</dependency>

 

 


2) 객체 생성

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class WorldTime {

    @JsonProperty("datetime")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX")
    private LocalDateTime dateTime;

    private String abbreviation;
    private String clientIp;
    private Integer dayOfWeek;
    private Integer dayOfYear;
    private Boolean dst;
    private String dstFrom;
    private Integer dstOffset;
    private String dstUntil;
    private Integer rawOffset;
    private String timezone;

    @JsonIgnore
    private Long unixtime;
    @JsonIgnore
    private String utcDatetime;
    @JsonIgnore
    private String utcOffset;
    @JsonIgnore
    private Integer weekNumber;
}

 



3) API 호출하는 매소드 만들기

public String callApi(String url) {
    RestTemplate restTemplate = new RestTemplate(); //RestTemplate 사용
    return restTemplate.getForObject(url, String.class); // API를 호출하여 JSON 문자열로 응답을 받음
}



4) 직렬화

public String getWorldTimeString() {
    WorldTime worldTimeObject = callApi("http://worldtimeapi.org/api/timezone/Asia/Seoul"); //예제 매소드
    Gson gson = new Gson();
    //java객체 -> String
    String worldTimeString = gson.toJson(worldTimeObject);
    return worldTimeString;
}

 


5) 역직렬화

public WorldTime getWorldTimeObject() { 
    //json 문자열 가져오기
    String worldTimeString = getWorldTimeString(); //예제 매소드
    Gson gson = new Gson();
    //String -> java객체
    WorldTime WorldTimeObject = gson.fromJson(json, WorldTime.class);
    return WorldTimeObject;
}

'업무중필요모음 > Snippet' 카테고리의 다른 글

[JAVA] - JsonObject  (0) 2024.08.12
[JAVA] - JSON  (0) 2024.08.12
[JAVA] - RestTemplete  (0) 2024.08.12
[Java] try-with-resource  (0) 2024.08.12
[JS] - 버튼 카운트 하기  (0) 2024.08.12

JsonObject란?

* 일반적으로 JSON 라이브러리에 포함되어 있음 / ex) org.json, Gson, Jackson
* JSON 데이터를 객체 형태로 표현



`JsonObject`을 이용한 Json 파싱 예제
1) 의존성 추가

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20210307</version>
</dependency>

 


2) API 호출하는 매소드 만들기

public String callApi(String url) {
    RestTemplate restTemplate = new RestTemplate(); //RestTemplate 사용
    return restTemplate.getForObject(url, String.class); // API를 호출하여 JSON 문자열로 응답을 받음
}

 


3) Json 데이터중 원하는 값 반환하는 매소드

public String getDateTime() {
    // JSON 문자열
    String jsonData = callApi("http://worldtimeapi.org/api/timezone/Asia/Seoul");

    //JsonObject로 변환
    JSONObject jsonObject = new JSONObject(jsonData);

    //JsonObject에서 datetime 값 리턴
    return jsonObject.getString("datetime");
}

 


4) JsonObject 객체 직렬화

public String getDateTime(JsonObject worldTimeObject) {
    //매개변수로 받은 JsonObject객체를 String 타입으로 변환
    String worldTimeString = worldTimeObject.toString();
    return worldTimeString;
}

'업무중필요모음 > Snippet' 카테고리의 다른 글

[JAVA] - GSON  (0) 2024.08.12
[JAVA] - JSON  (0) 2024.08.12
[JAVA] - RestTemplete  (0) 2024.08.12
[Java] try-with-resource  (0) 2024.08.12
[JS] - 버튼 카운트 하기  (0) 2024.08.12

 Json 이란 ?


JSON (JavaScript Object Notation)은 경량의 데이터 교환 형식
사람이 읽고 쓰기 쉽고, 기계가 파싱하고 생성하기 쉬운 텍스트를 기반으로 한 독립적인 데이터 포맷



직렬화
* Java 객체를 JSON 문자열로 변환하는 과정


역직렬화
* JSON 문자열을 Java 객체로 변환하는 과정

관련 어노테이션(Jackson 라이브러리)

* `@JsonFormat` : Json 표현 형식 설정
* `@JsonProperty` : JSON 데이터의 특정 필드를 Java 객체의 특정 변수에 매핑
* `@JsonIgnore` : 특정 필드를 JSON 직렬화/역직렬화 과정에서 무시하도록 지정
* `@JsonIgnoreProperties` : 클래스 레벨에서 JSON 직렬화/역직렬화 과정에서 무시할 속성들을 지정하는 데 사용
* `@JsonInclude` : 객체를 JSON으로 직렬화할 때 특정 조건에 따라 필드를 포함하거나 제외하도록 지정하는 데 사용
* `@JsonDeserialize` / `@JsonSerialize` : 직렬화 또는 역직렬화 과정에서 사용할 커스텀 deserializer 또는 serializer를 지정하는 데 사용

'업무중필요모음 > Snippet' 카테고리의 다른 글

[JAVA] - GSON  (0) 2024.08.12
[JAVA] - JsonObject  (0) 2024.08.12
[JAVA] - RestTemplete  (0) 2024.08.12
[Java] try-with-resource  (0) 2024.08.12
[JS] - 버튼 카운트 하기  (0) 2024.08.12


RestTemplete이란 ?

* Spring에서 지원하는 객체로 간편하게 Rest 방식 API를 호출할 수 있는 Spring(Spring 3 ↑) 내장 클래스



`RestTemplete`을 이용한 Json 파싱 예제

 

1) 의존성 추가

<dependency>
    <groupId>org.apache.httpcomponents.client5</groupId>
    <artifactId>httpclient5</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>


2) 객체 생성

@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class WorldTime {

    @JsonProperty("datetime")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX")
    private LocalDateTime dateTime;

    private String abbreviation;
    private String clientIp;
    private Integer dayOfWeek;
    private Integer dayOfYear;
    private Boolean dst;
    private String dstFrom;
    private Integer dstOffset;
    private String dstUntil;
    private Integer rawOffset;
    private String timezone;

    @JsonIgnore
    private Long unixtime;
    @JsonIgnore
    private String utcDatetime;
    @JsonIgnore
    private String utcOffset;
    @JsonIgnore
    private Integer weekNumber;
}

 

3) API 호출

@RequiredArgsConstructor
public class EmsBatchResultServiceImpl implements EmsBatchResultService {
    //RestTemplate 객체 생성
    private final RestTemplate restTemplate;

    private WorldTime getWorldTime() {
        String url = "http://worldtimeapi.org/api/timezone/Asia/Seoul"; 
        //WorldTime 타입으로 변환
        return restTemplate.getForObject(url, WorldTime.class); 
    }


4) 결과

INFO: Response: WorldTime(dateTime=2024-01-18T11:44:25.011235+09:00, 

abbreviation=KST, clientIp=106.251.230.10, dayOfWeek=4, dayOfYear=18, dst=false, 

dstFrom=null, dstOffset=0, dstUntil=null, rawOffset=32400, timezone=Asia/Seoul)

'업무중필요모음 > Snippet' 카테고리의 다른 글

[JAVA] - GSON  (0) 2024.08.12
[JAVA] - JsonObject  (0) 2024.08.12
[JAVA] - JSON  (0) 2024.08.12
[Java] try-with-resource  (0) 2024.08.12
[JS] - 버튼 카운트 하기  (0) 2024.08.12

 try-with-resource


Java SE7 이후에 등장한 try-with-resource라는 문법으로  
개발자가 직접 Finally문을 작성하여 close() 메소드를 호출해주지 않아도  
try 블록이 종료될 때 자동으로 close() 메소드를 호출해준다.(자동 자원 해제 )  


단,try에 전달할 수 있는 자원은 AutoCloseable 인터페이스를 구현한 클래스만 해당된다.

try 블록에 괄호()를 추가하여 파일을 열거나 자원을 할당하는 명령문을 명시하면,   
해당 try 블록이 끝나자마자 자동으로 파일을 닫거나 할당된 자원을 해제해 준다.

try ( 파일을 열거나 자원을 할당하는 명령문 ) {
     ...
}



* 사용 예 

  try (FileWriter file = new FileWriter("data.txt")) { 
            file.write("Hello World");
        } catch (IOException e) {
            e.printStackTrace();
        }



* 괄호 안에 IO객체 문장을 두개 이상 넣어 줄 수도 있다.  

 

이 때는 세미콜론으로 각 문장을 구분한다.

try (BufferedReader reader = new BufferedReader(new FileReader("source.txt"));
     BufferedWriter writer = new BufferedWriter(new FileWriter("destination.txt"))) {
            String line;
            while ((line = reader.readLine()) != null) {
                  writer.write(line);
                  writer.newLine(); // 새로운 줄 추가
             }
 }catch (IOException e) {
     System.err.println("파일 처리 중 오류 발생: " + e.getMessage());
 }

'업무중필요모음 > Snippet' 카테고리의 다른 글

[JAVA] - GSON  (0) 2024.08.12
[JAVA] - JsonObject  (0) 2024.08.12
[JAVA] - JSON  (0) 2024.08.12
[JAVA] - RestTemplete  (0) 2024.08.12
[JS] - 버튼 카운트 하기  (0) 2024.08.12

+ Recent posts