반응형
목차
- 콘솔 입출력
- 파일 입출력
자바에서 콘솔과 파일을 통해 데이터를 입력하고 출력하는 방법을 알아보자.
콘솔 입출력은 사용자의 입력을 받고 프로그램의 출력을 보여줄 때, 파일 입출력은 데이터를 파일로 저장하거나 불러올 때 유용하게 사용된다.
1. 콘솔 입출력
자바의 콘솔 입출력은 Scanner와 System 클래스를 활용하여 데이터를 읽고 출력할 수 있다.
콘솔 입력 예제 (Scanner)
Scanner 클래스를 사용하면 간편하게 콘솔 입력을 받을 수 있다
import java.util.Scanner;
public class ConsoleInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력하세요: ");
String name = scanner.nextLine();
System.out.print("나이를 입력하세요: ");
int age = scanner.nextInt();
System.out.println("안녕하세요, " + name + "님! 당신의 나이는 " + age + "세 입니다.");
scanner.close();
}
}
- 위 예제에서는 사용자가 이름과 나이를 입력하면, 프로그램이 인사와 함께 나이를 출력함.
- next() 메서드를 통해 특정 변수에 입력받은 값을 저장함.
콘솔 입력 예제 (InputStreamReader와 BufferedReader)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BufferedReaderConsoleInput {
public static void main(String[] args) {
// InputStreamReader는 바이트 기반 스트림을 문자 기반 스트림으로 변환해 줌
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
try {
System.out.print("이름을 입력하세요: ");
String name = br.readLine();
System.out.print("나이를 입력하세요: ");
String age = br.readLine();
int ageInt = Integer.parseInt(age); // 문자열을 정수로 변환
System.out.println("안녕하세요, " + name + "님! 당신의 나이는 " + ageInt + "세 입니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 위 예제에서 BufferedReader의 readLine() 메서드를 사용해 한 줄씩 입력받을 수 있으며, 입력된 데이터는 문자열로 반환함.
콘솔 출력 예제 (System.out)
콘솔 출력은 System.out.print 또는 System.out.println을 사용해 수행할 수 있습니다.
public class ConsoleOutputExample {
public static void main(String[] args) {
System.out.print("Hello, ");
System.out.println("World!");
}
}
위 코드는 System.out.print와 System.out.println을 사용해 "Hello, World!"를 출력함.
2. 파일 입출력
자바에서 파일 입출력은 File, FileWriter, FileReader 등 다양한 클래스를 활용한다.
파일 쓰기 예제 (FileWriter 사용)
import java.io.FileWriter;
import java.io.IOException;
public class FileWriteExample {
public static void main(String[] args) {
try (FileWriter writer = new FileWriter("example.txt")) {
writer.write("Hello, World!\n");
writer.write("파일에 데이터를 씁니다.");
System.out.println("파일 쓰기가 완료되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 위 예제는 example.txt 파일에 "Hello, World!"와 "파일에 데이터를 씁니다."라는 문장을 작성함.
- FileWriter를 사용해 문자열을 파일에 저장함.
파일 읽기 예제 (FileReader 사용)
파일에 저장된 데이터를 읽는 예제입니다.
import java.io.FileReader;
import java.io.IOException;
public class FileReadExample {
public static void main(String[] args) {
try (FileReader reader = new FileReader("example.txt")) {
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 파일에 저장된 데이터를 읽는 코드임.
- 이 코드는 example.txt 파일의 내용을 문자 하나씩 읽어 출력함.
객관식 문제
- Java에서 표준 출력에 사용되는 클래스는 무엇인가요?
- A) Scanner
- B) System
- C) BufferedReader
- D) InputStream
- System.out.println()에서 println의 역할은 무엇인가요?
- A) 파일을 읽는다.
- B) 화면에 내용을 출력한다.
- C) 텍스트를 입력받는다.
- D) 문자열을 객체로 변환한다.
- Java의 입출력 클래스 중 버퍼를 사용하여 효율적인 입출력을 제공하는 클래스는 무엇인가요?
- A) File
- B) BufferedReader
- C) Scanner
- D) System
- 파일에 텍스트를 쓰기 위해 가장 많이 사용되는 클래스는?
- A) FileReader
- B) FileWriter
- C) BufferedReader
- D) Scanner
- Java의 Scanner 클래스는 어떤 패키지에 속해 있나요?
- A) java.io
- B) java.util
- C) java.nio
- D) java.lang
- 다음 중 System.out.println()에서 out의 역할은 무엇인가요?
- A) 입력을 받아오는 스트림
- B) 표준 출력 스트림
- C) 파일을 읽는 스트림
- D) 네트워크 통신 스트림
- 파일에서 데이터를 읽어오는 대표적인 클래스는 무엇인가요?
- A) FileReader
- B) FileWriter
- C) Scanner
- D) PrintStream
- Java의 BufferedWriter 클래스는 어떤 기능을 제공하나요?
- A) 파일을 삭제한다.
- B) 파일을 읽는다.
- C) 파일을 압축한다.
- D) 텍스트를 버퍼에 쓰고 출력 성능을 향상시킨다.
- InputStream 클래스의 역할은 무엇인가요?
- A) 파일을 생성한다.
- B) 데이터를 입력받는다.
- C) 데이터를 네트워크로 전송한다.
- D) 데이터를 파일에 쓴다.
- FileReader와 FileWriter의 차이점은 무엇인가요?
- A) FileReader는 데이터를 파일에 쓰고, FileWriter는 파일을 읽는다.
- B) FileReader는 파일을 읽고, FileWriter는 데이터를 파일에 쓴다.
- C) FileReader는 문자열만 처리하고, FileWriter는 숫자만 처리한다.
- D) 두 클래스는 동일한 기능을 한다.
코테
1번 (백준 13241)
import java.util.Scanner;
public class Main {
//최대 공약수
public static long gcd(long a, long b)
{
if(b==0)
{
return a;
}
else
{
return gcd(b,a%b);
}
}
//최소 공배수
public static long lcm(long a, long b)
{
long gcd = gcd(a,b);
return (a*b)/gcd;
}
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
long a = sc.nextLong();
long b = sc.nextLong();
System.out.println(lcm(a,b));
}
}
2번 (백준 25305)
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++)
arr[i] = sc.nextInt();
Arrays.sort(arr);
System.out.println(arr[n - k]);
sc.close();
}
}
반응형
'WINK-(Web & App) > JAVA 스터디' 카테고리의 다른 글
[2024-2 Java 스터디] 김지나 #5주차 "6장" (0) | 2024.11.14 |
---|---|
[2024-2 Java 스터디] 김민서 #5주차 (1) | 2024.11.13 |
[2024-2 Java 스터디] 김재승 #4주차 (2) | 2024.11.11 |
Java[2024-2 Java 스터디] 이민형 #4주차 (5-5장) (0) | 2024.11.07 |
[2024-2 Java 스터디] 김지수 #4주차 (0) | 2024.11.07 |