본문 바로가기

old

[Java] 파일 입출력: FileInputStream, FileOutputStream 이용

- 'score.txt'라는 텍스트 파일을 읽어서 변수 a, b, c, d, e에 입력한다.

- 'score.txt'의 내용은 다음과 같다. [37 62 98 100 50]

- a, b를 비트합집합으로 연산하여 변수 x에 저장한다.

- c, d를 비트교집합으로 연산하여 변수 y에 저장한다.

- 정수 x + y를 연산하여 z에 저장한다.

- 변수 z의 값을 'score.txt'에 저장한다.

- 사용된 모든 입출력은 최종적으로 닫혀 있어야 한다.

 

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;

public class homework_0303 {
	public static void main(String[] args) throws IOException {
		
		//파일로부터 입력을 받는 클래스의 생성자
        //맥북 경로 지정 시 슬래시(/) 사용, 윈도우 경로 지정 시 백슬래시 두 번(\\)
		FileInputStream fis = new FileInputStream("/Users/nevermind/Desktop/workspace/javaprj/src/homework/score.txt");
		int a, b, c, d, e;
		
        //fis 객체를 스캔하는 Scanner 객체 생성
		Scanner scan1 = new Scanner(fis);
        
        //한 정수씩 불러오기
		a = scan1.nextInt();
		b = scan1.nextInt();
		c = scan1.nextInt();
		d = scan1.nextInt();
		e = scan1.nextInt();
		
		
		int x = a | b;
		int y = c & d;
		int z = x + y;
		
        //객체 닫기
		scan1.close();
		fis.close();
        
        
        
		//파일에 출력하는 클래스의 생성자
		FileOutputStream fos = new FileOutputStream("/Users/nevermind/Desktop/workspace/javaprj/src/homework/score.txt");
		//출력해 주는 PrintStream 객체 생성
        PrintStream fout = new PrintStream(fos);
		
        //fout 객체의 printf 함수를 통해 파일에 출력함
		fout.printf("%d %d %d %d %d %d", a, b, c, d, e, z);
		
        //콘솔에 출력함
        System.out.printf("a: %d\nb: %d\nc: %d\nd: %d\ne: %d\n", a, b, c, d, e);
		
		//출력 객체 닫기
		fout.close();
		fos.close();
		
	
	}

}