컴퓨터 메모리 입장에서, 프로그램 실행한 결과를 화면에 출력하면 컴퓨터가 종료되면 그 결과는 사라지게 된다. 만약 프로그램 실행한 결과를 영구적으로 보관(저장) 하려면 파일을 이용할 수 있다.
또, 프로그램 실행에 필요한 데이터를 키보드로부터 입력받지 않고 파일로부터 입력받을 수 있다.
"입출력" 은 컴퓨터 메모리 입장에서 입력이고, 출력이다.
프로그램 실행한 결과 즉, 메모리의 내용을 파일로 "출력"
파일로부터 컴퓨터 메모리로 읽어들이기 "입력"
-------------------------------------------------------------------------------------------
자바는 이러한 "입출력"을 위하여
java.io 패키지에 관련 클래스들을 만들어 두었다.
입출력(스트림)
- 스트림
- 순서가 있는 자료의 흐름
- 보통, 다른 프로그래밍에서는 출력하는 대상에 따라서 그것이 파일인가? 혹은 프린터인가 네트워크인가에 따라서 출력 방법이 달라지고 프로그램이 복잡해진다.
- 자바에서는 출력 대상이 무엇이라도 동일한 방식으로 사용할 수 있도록 만들어두었다. 그것을 "스트림"이라고 한다.
입출력은 크게 2가지 형태의 입출력이 있다.
- 문자 단위의 입출력
- Reader : 문자 단위의 입력을 위한 제일 조상
- Writer : 문자 단위의 출력을 위한 제일 조상
java.lang.Object
java.io.Writer
java.io.OutputStreamWriter
java.io.FileWriter
프로그램 실행한 결과를 파일로 출력하면 Wirter 의 후손클래스인 FileWriter 를 이용할 수 있다.
package com.kosta.file;
import java.util.Scanner;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
//어떤 사람의 이름, 주소, 전화를 입력받아 출력하는 프로그램을 만ㄷㄹ기
public class FileTest2 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String name, addr, phone;
System.out.print("이름을 입력 ==> ");
name = sc.next();
System.out.print("주소을 입력 ==> ");
addr = sc.next();
System.out.print("전화번호 입력 ==> ");
phone = sc.next();
try {
// FileWriter fw = new FileWriter("c:/data/info.txt");
//파일을 생성하면 기본적으로 기존의 파일을 덮어쓰기 한다
FileWriter fw = new FileWriter("c:/data/info.txt", true);
//기본은 덮어쓰기, 추가 모드
//파일 생성시에 두번쨰 매개변수(append mode)에 true를 주면 그 파일이 없다면 새로 만들어주고, 이미 있다면 내용을 추가해준다.
fw.write("이름: " + name + "\n");
fw.write("주소: " + addr + "\n");
fw.write("번호: " + phone + "\n");
fw.close();
System.out.println("파일 출력 완료");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
- 바이트 단위의 입출력
- InputStream : 바이트 단위의 입력을 위한 제일 조상
- OutputStream : 바이트 단위의 출력을 위한 제일 조상
'Kosta DevOps 과정 280기 > Java' 카테고리의 다른 글
정규표현식 (0) | 2024.05.27 |
---|---|
문자열 (0) | 2024.05.27 |
난수 (0) | 2024.05.23 |
동적인 배열 Set, List, Map (0) | 2024.05.23 |
final 키워드가 올 수 있는 곳 (0) | 2024.05.23 |