javaboiii의 JAVA/JAVA 예제

JAVA - 파일 입출력 예제

javaboiii 2024. 7. 25. 20:37

JAVA

업 다운 게임

test.txt 의 파일을 읽어와 업다운 게임을 진행하고

정답을 기록을 작성해서 test.txt에 덮어쓰기

package class02;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Task01 {
	public static void main(String[] args) {
		String filePath ="C:\\src\\class02\\";

		String fileName = "test.txt";

		FileReader fileReader;
		String line="";

		try {
			fileReader = new FileReader(filePath+fileName);

			BufferedReader reader = new BufferedReader(fileReader);
			line = reader.readLine();
		} catch (FileNotFoundException e) {
			System.out.println("파일명 오류");
		} catch (IOException e) {
			System.out.println("입출력 과정중 오류 발생");
		}
		// 자료형변환(타입캐스팅)을 담당하는 클래스
		// Wrapper 클래스
		int ansNum=Integer.parseInt(line);
		int startNum=1;
		int endNum=50;
		int cnt = 1;
		Scanner sc=new Scanner(System.in);
		while(true) {
			System.out.print(startNum+" ~ "+endNum+" 중에서 정수 입력 >> ");
			int num=sc.nextInt();

			if(ansNum < num) {
				System.out.println("DOWN!");
				endNum=num-1;
				cnt++;
			}
			else if(ansNum > num) {
				System.out.println("UP!");
				startNum=num+1;
				cnt++;
			}
			else {
				break;
			}
		}
		System.out.println(cnt +"회만에 정답을 맞추셨습니다! :D");
		
		FileWriter fileWriter;
		try {
			fileWriter = new FileWriter(filePath+fileName);
			
			BufferedWriter writer = new BufferedWriter(fileWriter);
			
			writer.write(cnt+"회만에 정답을 맞추셨습니다! :D");
			writer.close();
		} catch (IOException e) {
			System.out.println("파일 입출력 오류 발생");
		}
		
	}
}

 

 

이미지 파일 복사하기

public static void main(String[] args) {

    String filePath = "C:\\resource"; // 파일경로

    String fileName = "programmer.png"; // 복사할 파일 이름

    String copyFileName = "programmer2.png"; // 복사될 파일 이름

    File sourceFile = new File(filePath+fileName); // 원본 이미지 파일 경로 및 이름
    File newSourceFile = new File(filePath+copyFileName); // 복사될 파일의 경로 및 이름

    try {
        BufferedImage image = ImageIO.read(sourceFile);
        // 원본 이미지 파일을 읽어 메모리에 "BufferedImage" 객체로 로드함

        ImageIO.write(image, "png", newSourceFile);
        // image = 복사할 이미지 이미지
        // 이미지 포맷
        // newSourceFile = 저장될 파일
        // 읽어들인 이미지를 지정된 모맷과 파일 경로로 저장함

        System.out.println("복사 완료");
    } catch (IOException e) { // 입출력 예외
        System.out.println("복사중 입출력 오류 발생");
    }
}

 

[Stream을 이용한 방법]

public static void main(String[] args) {

    String filePath = "C:\\resource"; // 파일경로

    String fileName = "programmer.png"; // 복사할 파일 이름

    String copyFileName = "programmer2.png"; // 복사될 파일 이름


    try {

        FileInputStream fis = new FileInputStream(filePath+fileName);
        FileOutputStream fos = new FileOutputStream(filePath+copyFileName);

        byte[] buffer = new byte[1024];
        int content;
        while ((content = fis.read(buffer)) != -1) {
            fos.write(buffer, 0, content);
        }
        fos.close();

    } catch (IOException e) {
        System.out.println("오류발생!");
    }
}

 

스트림 : 텍스트 파일, 바이너리 파일 등 파일의 다양한 유형의 파일 데이터를 읽고 쓰는 데 사용

 

ImageIO : 이미지 파일을 읽고 쓰는 데 특화된 클래스

'javaboiii의 JAVA > JAVA 예제' 카테고리의 다른 글

JAVA - 웹 클롤링(Web Crawling)  (0) 2024.07.25
JAVA - MVC패턴 예제  (0) 2024.07.18
JAVA - ArrayList, Map 예제  (0) 2024.07.15
JAVA - 인터페이스 예제  (0) 2024.07.12
JAVA - [함수] 학생부 프로그램 함수화  (0) 2024.07.01