System.in을 사용하고, 표준 출력은 System.out을 사용import java.util.Scanner;
public class StandardInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine();
System.out.println("안녕하세요, " + name + "!");
}
}
1-1. nextLine(), next(), nextInt() 차이
nextLine() 메서드는 한 줄 전체를 읽어오고, 개행 문자 \n을 포함한 한 라인의 문자열을 읽는다. (즉, 사용자가 엔터키를 입력할 때까지 문자열을 한 번에 읽음.)next() 공백(space)을 기준으로 한 단어(토큰)만을 읽어온다.nextInt() 정수를 읽어오며 정수를 입력하기 전까지 대기.ex. 사용자가 Hello World를 입력했다면 nextLine는 Hello World를 다 읽고, next는 Hello만 읽고, nextInt는 정수가 들어올 때가지 아무 것도 읽지 않는다.
BufferedReader 문자로 읽을 때 효율을 높이기 위해 버퍼링을 제공하는 클래스로 행 단위로 문자열을 읽어올 수 있음BufferedWriter 문자로 쓸 때 효율을 높이기 위해 버퍼링을 제공하는 클래스로 행 단위로 문자열을 파일에 쓸 수 있음2-1. 파일 읽기
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
2-1. 파일 쓰기 (내보내기)
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriteExample {
public static void main(String[] args) {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
writer.write("Hello, Java!");
writer.newLine(); // 새로운 줄로 이동
writer.write("파일쓰기 예제.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
3-1. 바이트 스트림 (Byte Streams)
ByteArrayInputStream, ByteArrayOutputStream: 바이트 배열에서 읽고 쓰기
3-2. 문자 스트림 (Character Streams)
FileReader, FileWriter: 문자 단위로 파일에서 읽고 쓰기
3-3. 기타 스트림
ObjectInputStream, ObjectOutputStream: 객체를 읽고 쓰기.
PrintStream: 출력 스트림에 서식화된 데이터를 쓰기.