키보드로부터 입력받은 데이터를 파일에 출력
1. 키보드로부터 입력받기
- System.in을 통해 키보드로부터 입력받는 입력스트림 InputStream 객체로 연결 => byte 단위로 처리
- InputStream -> InputStreamReader 객체로 변환하여 char 단위로 처리
- InputStreamReader -> BufferedReader 객체로 변환하여 String 단위로 처리
- BufferedReader 객체로부터 입력스트림 한줄(Line) 단위로 읽어와서 출력
2. 파일로 출력하기
- File 객체를 사용하여 출력할 파일 위치 및 이름을 지정
- FileWrite 객체를 사용하여 char 단위로 처리(File 객체 전달)
- FileWrite -> PrinWriter 객체로 변환하여 출력
InputStream is = System.in;
InputStreamReader reader = new InputStreamReader(is);
BufferedReader buffer = new BufferedReader(reader);
위의 문장을 한 줄로 표현하면,
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
또는
Scanner sc = new Scanner(System.in);
로 표현할 수 있다.
File f = new File("C://temp/readme.txt");
FileWriter fw = new FileWriter(f);
PrintWriter pw = new PrintWriter(fw);
위의 문장을 한 줄로 표현하면,
System.out.println("입력하세요: ");
try(BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(new FileWriter(f))) {
String str = buffer.readLine();
pw.println(str);
} catch (IOException e) {
e.printStackTrace();
}
콘솔결과:
입력하세요: 땅콩 ㅎㅇ
전체코드 ▶
package io_2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Scanner;
public class Ex5 {
public static void main(String[] args) {
/*
* 키보드로부터 입력받은 데이터를 파일에 출력
* 1. 키보드로부터 입력받기
* 1) System.in을 통해 키보드로부터 입력받는 입력스트림 InputStream 객체로 연결
* => byte 단위로 처리
* 2) InputStream -> InputStreamReader 객체로 변환하여 char 단위로 처리
* 3) InputStreamReader -> BufferedReader 객체로 변환하여 String 단위로 처리
* 4) BufferedReader 객체로부터 입력스트림 한줄(Line) 단위로 읽어와서 출력
*
* 2. 파일로 출력하기
* 1) File 객체를 사용하여 출력할 파일 위치 및 이름을 지정
* 2) FileWrite 객체를 사용하여 char 단위로 처리(File 객체 전달)
* 3) FileWrite -> PrinWriter 객체로 변환하여 출력
*
*/
// InputStream is = System.in;
// InputStreamReader reader = new InputStreamReader(is);
// BufferedReader buffer = new BufferedReader(reader);
// 위의 문장을 한 줄로 표현하면
// BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
// 또는
// Scanner sc = new Scanner(System.in);
File f = new File("C://temp/readme.txt");
// FileWriter fw = new FileWriter(f);
// PrintWriter pw = new PrintWriter(fw);
// 위의 문장을 한 줄로 표현하면,
System.out.println("입력하세요: ");
try(BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(new FileWriter(f))) {
String str = buffer.readLine();
pw.println(str);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Test
package io_2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test5 {
public static void main(String[] args) {
/*
* temp 폴더에 저장된 source.txt 파일을 읽어들여
* 각 라인에 라인번호를 추가하여 콘솔(화면)에 출력
* - FileReader, BufferedReader 사용
* (키보드로 입력받는 InputStreamReader 대신 File로 부터
* 입력받는 FileReader 사용)
*/
// 키보드로부터 입력받아 출력 반복
try(BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in))){
String str = buffer.readLine();
while(str != null) {
System.out.println(str);
str = buffer.readLine();
}
} catch(IOException e) {
e.printStackTrace();
}
File f = new File("C://temp/source.txt");
try(BufferedReader buffer = new BufferedReader(new FileReader(f))){
int count = 1;
String str = buffer.readLine();
while(str != null) {
System.out.println(count + " " + str); // 라인번호 붙여 출력
str = buffer.readLine(); // 새로운 한 줄 읽어오기
count++; // 라인번호 증가
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
package io_2;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test5_2 {
public static void main(String[] args) {
/*
* temp 폴더에 저장된 source.txt 파일을 읽어들여
* 각 라인에 라인번호를 추가하여 콘솔(화면)에 출력
* - FileReader, BufferedReader 사용
* (키보드로 입력받는 InputStreamReader 대신 File로 부터
* 입력받는 FileReader 사용)
*/
// 키보드로부터 입력받아 출력 반복
try(BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in))){
String str = buffer.readLine();
while(str != null) {
System.out.println(str);
str = buffer.readLine();
}
} catch(IOException e) {
e.printStackTrace();
}
File f = new File("C://temp/source.txt");
try(BufferedReader buffer = new BufferedReader(new FileReader(f))){
int count = 1;
String str = buffer.readLine();
while(str != null) {
System.out.println(count + " " + str); // 라인번호 붙여 출력
str = buffer.readLine(); // 새로운 한 줄 읽어오기
count++; // 라인번호 증가
}
} catch(IOException e) {
e.printStackTrace();
}
}
}
'JAVA' 카테고리의 다른 글
[JAVA] 정규표현식에 대해 알아보자 (1) | 2023.12.11 |
---|---|
[JAVA] 객체 직렬화(Serialization) || 역직렬화(Deserialization) (0) | 2023.12.07 |
[JAVA] 자바의 기본 데이터 입출력 (0) | 2023.12.07 |
[JAVA] 자바 I/O - 모니터로부터 데이터를 출력하는 방법 2가지 (0) | 2023.12.07 |
[JAVA] 자바 I/O - 키보드로부터 데이터를 입력받아 처리하는 방법 5가지 (1) | 2023.12.05 |