JAVA

[JAVA] 파일 입출력 예제

yn98 2024. 7. 25. 17:36
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;
//1. test.txt 파일의 내용을 불러와서, 
//몇번만에 맞췄는지를 다시 파일로 작성하기

public class Test01 {
	public static void main(String[] args) {
		String filePath = "C:\\YN\\workspace\\day020\\src\\class01\\";
		// 실습경로
		String inputFileName = "test.txt";
		String outputFileName = "result.txt";
		// 확장자
		FileReader fileReader = null;
		BufferedReader reader= null;
		String line = "";

		Scanner sc = new Scanner(System.in);
		System.out.print("사용자 이름 입력 >> ");
		String name = sc.next();

		// 기존 파일에서 데이터 읽어오기
		
		try {
			fileReader = new FileReader(filePath+inputFileName);

			reader = new BufferedReader(fileReader);

			line = reader.readLine();

		}catch (FileNotFoundException e) {
			System.out.println("파일명이 올바르지않습니다!");
		} catch (IOException e) {
			System.out.println("입출력 과정중에 에러가 발생했습니다!");
		}finally {
			// BufferedReader와 FileReader 닫기
			try {
				if (reader != null) {
					reader.close();
				}
				if (fileReader != null) {
					fileReader.close();
				}
			} catch (IOException e) {
				System.out.println("파일 닫기 에러가 발생했습니다!");
			}

			int ansNum = Integer.parseInt(line);
			int startNum = 1;
			int endNum = 50;
			int cnt = 0;

			while(true) {
				cnt++;
				System.out.print(startNum+" ~ "+endNum+" 중에서 정수 입력 >> ");
				int num = sc.nextInt();

				if(ansNum < num) {
					System.out.println("DOWN!");
					endNum=num-1;
				}
				else if(ansNum > num) {
					System.out.println("UP!");
					startNum=num+1;
				}
				else {
					System.out.println("정답입니다! :D");
					break;
				}
			}
			try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath + outputFileName))) {
	            writer.write(name + "님이 " + cnt + "번만에 정답을 맞추셨습니다! :D");
	        } catch (IOException e) {
	            System.out.println("파일 쓰기 에러가 발생했습니다!");
	        }
		}
	}
}
package class02;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test02 {
   public static void main(String[] args) {

      String filePath = "C:\\YN\\resource\\";
      String originFileName = "test.jpg";
      String copyFileName = "testCopy.jpg";

      try {

         FileInputStream fis = new FileInputStream(filePath+originFileName);
         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("오류발생!");
      }

   }
}