java언어의 기본적인 입출력방식을 알아보자.

자바에서는 대표적으로 Scanner클래스를 이용해서 사용자와 상호작용할 수 있다.

일반적으로 Scanner sc = new Scanner(System.in);으로 클래스 객체를 생성한 뒤에, 

sc.nextInt();와 같은 방법으로 int형을 입력받을 수 있다.

입력받은 자료는 내부적으로 처리한 뒤에 다시 사용자에게 그 값을 반환한다.


프로그램이 입출력을 잘 지원한다는 것은 사용자 인터페이스가 뛰어나다는 의미와 같다. 나중에 Gui를 배우게 되면 이러한 입출력을 훨씬 용이하게 할 수 있다.


1. 특정한 정수를 입력 받아서 그대로 출력하는 프로그램을 작성해보자.

(1)Scanner라는 클래스의 인스턴스 변수(객체형 변수, 대문자로 시작, 클래스의 객체)인 sc를 만들고,  우항에는 객체를 생성해 초기화를 해주자. 

   이때, 오류가 나는 것을 클릭해서 java.util라는 자바 기본 라이브러리 것을 import하자.

 -파라미터의 System.in은 console창에 입력하는 데이터들을 의미한다.


(2) int i = sc.nextInt(); 는 사용자가 입력한 정수를 i에 넣는 다는 의미이다.


(3) sc.close();를 통해 입출력하는 변수sc를 닫아 주어, 안정적으로 종료시킨다.


import java.util.Scanner;


public class Main {


public static void main(String[] args) {


Scanner sc = new Scanner(System.in); //콘솔창에서 입력받는데 필요한 스캐너변수

System.out.print("정수를 입력하세요 : ");

int i = sc.nextInt();

System.out.println("입력된 정수는 "+i+"입니다");

sc.close();


}


}



2. 파일에 입력된 정수에 100을 곱해서 출력하는 프로그램을 작성해보자.

[ 파일을 컨트롤 하는 file변수 ->  file의 내용을 읽어올 수 있는 scanner 변수]이용

(1) File클래스를 이용해 file이라는 변수를 만들고, 객체를 생성해 초기화를 할 때, 매개변수에는 "input.txt"라는 파일명을 넣어준다.

    이때, 파일은 프로젝트 창에서 새로 생성할 것이다.

File file = new File("input.txt");


(2) Scanner클래스를 사용하는데, 매개변수에는 콘솔창에 입력되는 데이터(System.in)가 아닌 file변수를 넣어준다. 


(3) 매개변수에 빨간줄이 난 것은 아직 input.txt라는 파일이 없어서 file변수가 비어있거나 등등의 예외처리가 안되어서 나는 것이다.

     빨간줄에 마우스를 갖다대어, try/catch문을 입혀주자. (예외처리문) catch문에서는 println으로 파일 읽는데 오류가 발생했다고 띄워주자.


(4) try문 내부에 계속 코드를 이어가는데, while문의 조건으로 sc.hasNextInt()(반환되는 것이 boolean형)를 통해 

    sc가 읽어오는 file(input.txt)에서 '다음에 읽어올 정수가 존재하는지?'를 조건으로 건다.

    그리고 조건문 안에는 실제로 '다음에 읽어오는 정수 값'인 sc.nextInt()에 100을 곱해서 출력해주자. 


(5) while문을 나와서 다음에 읽어올 정수가 없는 것으로서, 입출력이 끝났으니 스캐너함수를 닫아주는 sc.close()로 닫아주자.


File file = new File("input.txt");

try {

Scanner sc = new Scanner(file);

while(sc.hasNextInt()) {

System.out.println( sc.nextInt() * 100 );

}

sc.close();

} catch (FileNotFoundException e) {

System.out.println("파일을 읽어오는 도중에 오류가 발생했습니다");

}


(6) 이제 file 매개변수인 input.txt파일을 만들어주자. Tutorial7 우클릭 > new > File > file name : [ input.txt ]


(7) txt파일 안에 정수를 임의로 입력하자. space로 간격 or 줄바꿈을 주면 숫자들이 구분된다


170 580 30

2000

30

2080


(8) 출력된 값은  아래와 같다.


17000

58000

3000

200000

3000

208000














+ Recent posts