본문 바로가기
수업 문제(국비 지원)/Java

[JAVA] 2022.09.16 - IO입출력

by byeolsub 2023. 4. 29.

문제 :
 * 화면에서 생성할 파일이름을 입력받고, 파일에 저장할 내용을 콘솔에서 내용을 입력
 * 입력받은 파일명의 파일에 저장하는 프로그램작성하기.  
 * exit 문자를 입력받으면 입력을 종료한다.
 * 단 FileOutputStream을 이용한다.
package chap14;

import java.io.FileInputStream;
import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		//1.파일 이름 입력받기
		System.out.println("저장할 파일의 이름을 입력하세요");
		Scanner scan = new Scanner(System.in);
		String file = scan.nextLine();
		//String nextline() : 한줄 전체를 읽기
		//2.FileOutputStream 객체 생성
		FileInputStream fos = new FileInputStream(file);
		//3.내용을 입력받아, 파일에 저장. => 반복. exit까지
		System.out.println(file+"파일에 저장할 내용 입력");
		String data =null;
		while(true) {
			data = scan.nextLine();
			if(data.equals("exit")) break;
			fos.write(((data+"\\n")).getBytes());
		}
		//4.flush,close
		fos.flush();
		fos.close();

	}
}

bin/chap14/InputStreamEx1.class 파일을 읽어 다음 결과와 같이 출력하기 
[결과] 
 CA FE BA BE 00 00 00 3D 00 30 07 00 02 01 00 15
 63 68 61 70 31 34 2F 49 6E 70 75 74 53 74 72 65
 61 6D 45 78 31 07 00 04 01 00 10 6A 61 76 61 2F
 6C 61 6E 67 2F 4F 62 6A 65 63 74 01 00 06 3C 69
 6E 69 74 3E 01 00 03 28 29 56 01 00 04 43 6F 64
**package chap14;
import java.io.FileInputStream;
import java.io.IOException;

public class Test2{
	public static void main(String[] args) throws IOException {
		FileInputStream fis = 
		new FileInputStream("src\\chap14\\InputStreamEx1.java");
		byte[] buf = new byte[16];
		int len;
		while ((len = fis.read(buf)) != -1) {
			for (int i = 0; i < len; i++)
				System.out.printf(" %02X", buf[i]);
			System.out.println();
		}
	}
}**