생활코딩 - 자바 공부 후 정리한 내용입니다.


성공하는 프로그래밍 공부법이라는 책에서 어떤 개발자 분이 프로그래밍 언어에서 제일 기본적인 3가지를 ‘반복문, 조건문, 입출력’이라고 했다. 오늘은 마지막에 해당하는 입출력을 배운다. 그렇지만 아직 java에 대해 배울 것은 아직 많이 남았다.


Scanner 만들기

  1. java.util.*; : Scanner 클래스를 사용하기 위해 라이브러리를 import한다.
  2. System.in 또는 File : Scanner 객체를 생성할 때 System.in을 인자로 전달하면 사용자로부터 입력을 받고, File을 전달하면 파일을 입력 받는다.
  3. try - catch : 파일을 입력 받을 때 파일이 존재하지 않는 경우, 에러가 발생하므로 try-catch문으로 에러를 처리(error handling)한다.




사용자로부터 입력 받기

1
2
3
4
5
6
7
8
9
10
11
12
13
import java.util.*;

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

Scanner sc = new Scanner(System.in); // #1

while(sc.hasNextInt()) { // #2
System.out.println(sc.nextInt()*1000); // #3
}
sc.close(); // #4
}
}

  • #1 : 앞서 말한 것처럼 Scanner 객체를 생성할 때 System.in으로 사용자 입력을 받을 수 있게 세팅한다.
  • #2 : Scanner 객체의 hasNextInt() 메서드는 사용자가 입력한 값이 숫자인 경우 True, 아닌 경우 False를 반환한다.
  • #3 : 사용자가 숫자를 입력한 경우 sc.nextInt로 입력 받고 1000을 곱한 후 println()으로 출력한다.
  • #4 : Scanner 객체 sc를 닫는다.




파일 입력 받기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;

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

try { // #1
File file = new File("out.txt"); // #2
Scanner sc = new Scanner(file); // #3
while(sc.hasNextInt()) {
System.out.println(sc.nextInt()*1000);
}
sc.close();
} catch(FileNotFoundException e) { // #4
e.printStackTrace(); // #5
System.out.println("냥");
}
}
}

  • #1 : try-catch문으로 에러를 처리한다. try 코드 블럭 안에는 실행하고 싶은 코드들을 쓴다.
  • #4 : catch문에는 FileNotFoundException 에러가 발생했을 때, 어떻게 처리할 지 작성한다. 해당 에러의 이름으로 e라는 이름을 붙였다.
  • #2 : 숫자 1234가 적힌 file의 이름 out.txt를 인자로 전달하고 file 객체를 생성한다.
  • #3 : System.in 대신 file을 전달해 file을 읽는다. while문의 실행은 사용자 입력을 받을 때 실행되었던 코드와 같다.
  • #5 : 만약 해당 파일이 존재하지 않는 경우 #4가 실행된다. printStackTrace()는 어떻게 에러가 발생했는지 추적해서 출력한다.