콘솔에서 입력을 받을 때는 위 4가지 방식이 있는데, 기본적으로 Scanner 를 많이 쓴다.
하지만 방식의 차이로 BufferedReader 가 Scanner 보다 속도가 빠르기 때문에 입력 데이터가 많아지면 BufferedReader 가 유리하다.
참고로 argument 에 들어가는 System.in 은 콘솔이라고 생각하면 된다.
// 입력
// Scanner: IOException 을 던질 필요가 없다.
System.out.println("==============");
Scanner scanner = new Scanner(System.in);
System.out.println("공백을 기준으로 입력 : ");
System.out.println(scanner.next());
scanner.nextLine();
System.out.println("정수만 입력 : ");
System.out.println(scanner.nextInt());
scanner.nextLine();
System.out.println("아무 값이나 입력 : ");
System.out.println(scanner.nextLine());
// BufferedReader: IOException 을 던저야 한다.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("입력 : ");
System.out.println(br.readLine());
// 출력
System.out.println();
System.out.print("\n");
System.out.printf("%d\n", 1);
// 2진수 출력
System.out.printf("%s\n", Integer.toBinaryString(-10));
System.out.printf("%s\n", Integer.toBinaryString(10));
System.out.printf("%d\n", Integer.parseInt(Integer.toBinaryString(10)));
// 정수 8진수 (Octal)
System.out.printf("%o\n", 10);
// 정수 10진수 (Decimal)
System.out.printf("%d\n", 10);
// 정수 16진수 (Hexa)
System.out.printf("%x\n", 10);
// 실수 (flaot)
System.out.printf("%f\n", 1.23f);
System.out.printf("%f\n", 1.23);
// 문자 (Char)
System.out.printf("%c\n", 'C');
// 문자열 (String)
System.out.printf("%s\n", "String");
// 불리언 (Bool)
System.out.printf("%b\n", true);
// 5칸 왼쪽 정렬
System.out.printf("%-5d\n", 123);
// 5칸 오른쪽 정렬
System.out.printf("%5d\n", 123);
// 5칸 오른쪽 정렬, 빈 공간은 0으로
System.out.printf("%05d\n", 123);
// 소수점 4자리까지 반올림해 출력
System.out.printf("%.4f\n", 1.23456);
파일에 데이터를 쓰는 것이다.
// FileWriter
FileWriter fw = new FileWriter("./memo1.txt");
String memo = "제목\n";
fw.write(memo);
fw.close();
FileWriter conFw = new FileWriter("./memo1.txt", true);
memo = "이어쓰기\n";
conFw.write(memo);
conFw.close();
// PrintWriter
PrintWriter pw = new PrintWriter("./memo2.txt");
memo = "제목";
pw.println(memo);
pw.close();
PrintWriter conPw = new PrintWriter(new FileWriter("./memo2.txt", true));
memo = "이어쓰기";
conPw.println(memo);
conPw.close();
파일에서 데이터를 읽어오는 것이다.
// BufferedReader
BufferedReader br = new BufferedReader(new FileReader("./memo1.txt"));
while (true) {
String line = br.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
br.close();