Java 입출력 (Input/Output)

fever·2024년 1월 3일

Java 기초

목록 보기
7/10
post-thumbnail

1. 표준 입출력 (Standard Input/Output)

  • 자바에서의 표준 입력은 System.in을 사용하고, 표준 출력은 System.out을 사용
    -주로 Scanner나 BufferedReader를 사용하여 키보드로부터 입력을 받고, System.out.println을 통해 화면에 출력한다.
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는 정수가 들어올 때가지 아무 것도 읽지 않는다.

2. 파일 입출력 (File Input/Output)

  • 파일 입출력은 java.io 패키지를 통해 수행
  • 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. 그 외 입출력 스트림

3-1. 바이트 스트림 (Byte Streams)
ByteArrayInputStream, ByteArrayOutputStream: 바이트 배열에서 읽고 쓰기

3-2. 문자 스트림 (Character Streams)
FileReader, FileWriter: 문자 단위로 파일에서 읽고 쓰기

3-3. 기타 스트림
ObjectInputStream, ObjectOutputStream: 객체를 읽고 쓰기.
PrintStream: 출력 스트림에 서식화된 데이터를 쓰기.

profile
선명한 삶을 살기 위하여

0개의 댓글