19.04.21 IO 기반 입출력 및 네트워킹-1
Back-End/Java 2019. 4. 21. 18:31
-입력 스트림과 출력 스트림-
프로그램이 데이터를 입력받을 때에는 입력스트림(InputStream)이라고 부르고,
프로그램이 데이터를 보낼 때에는 출력스트림(OutputStream)이라고 부른다.
-콘솔 입출력-
콘솔은 시스템을 사용하기 위해 키보드로 입력을 받고 화면으로 출력하는 소프트웨어를 말한다.
자바는 콘솔로부터 데이터를 입력받을 때 System.in을 사용하고, 콘솔에 데이터를 출력할 때 System.out를 사용한다.
그리고 에러를 출력할 때에는 System.err을 사용한다.
-System.in 필드-
콘솔로부터 데이터를 입력받을 수 있도록 System클래스의 in정적 필드를 제공하고 있다.
System.in은 InputStream 타입의 필드이므로 InputStream 변수로 참조가 가능하다.
InputStream is System.in;
read()메소드로 입력된 바이트를 읽으면 아스키 코드가 들어있다.
키보드에서 입력한 문자를 직접 얻고 싶다면 read() 메소드로 읽은 아스키 코드를 char로 타입
변환하면 된다.
char inputChar = (char) is.read();
-예제 및 출력 결과-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 |
package com.hs.chap18;
import java.io.IOException;
import java.io.InputStream;
public class SystemInExample1 {
public static void main(String[] args) throws Exception {
System.out.println("== 메뉴 ==");
System.out.println("1. 예금 조회");
System.out.println("2. 예금 출금");
System.out.println("3. 예금 입금");
System.out.println("4. 종료 하기");
System.out.println("메뉴를 선택하세요: ");
InputStream is = System.in; //키보드 입력 스트림 얻기
char inputChar = (char) is.read(); //얻은 아스키 코드를 문자로 리턴
switch (inputChar) {
case '1':
System.out.println("예금 조회를 선택하셨습니다.");
break;
case '2':
System.out.println("예금 출금을 선택하셨습니다.");
break;
case '3':
System.out.println("예금 입금을 선택하셨습니다.");
break;
case '4':
System.out.println("종료하기를 선택하셨습니다.");
break;
}
}
}
|
cs |
-System.out 필드-
콘솔로 데이터를 출력하기 위해서 사용하는 필드.
out는 PrintStream 타입의 필드이다.
OutputStream os = System.out;
-Console 클래스-
콘솔에서 입력받은 문자열을 쉽게 읽을수 있도록 하는 클래스.
이클립스에서 실행하면 System.console() 메소드는 null을 리턴하기 때문에 반드시
명령 프롬프트에서 실행해야 한다.
-Scanner 클래스-
Console 클래스는 콘솔로부터 문자열은 읽을 수 있지만 기본타입(정수,실수) 값을 바로 읽을 수는 없다.
Scanner 클래스를 이용하면 콘솔로부터 기본 타입의 값을 바로 읽을 수 있다.
Scanner 객체를 생성하려면 생성자에 System.in 매개값을 주면 된다.
Scanner scanner = new Scanner(System.in);
-FileInputStream-
파일로부터 바이트 단위로 읽어드릴때 사용하는 바이트 기반 입력 스트림이다.
바이트 단위로 읽기 때문에 그림, 오디오, 비디오, 텍스트 파일 등 모든 종류의 파일을 읽을 수 있다.
//첫번째 형식
FileInputStream fis = new FileInputStream("C:/Temp/image.gif"); //문자열로된 파일의 경로를 가지고 생성
//두번째 형식
File file = new File("C:/Temp/image.gif");
FileInputStream fis = new FileInputStream(file);
-FileWriter-
텍스트 데이터를 파일에 저장할 때 사용하는 문자 기반 스트림.
-예제 및 출력결과-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
package com.hs.chap18;
import java.io.File;
import java.io.FileWriter;
public class FileWriterExample {
public static void main(String[] args) throws Exception {
File file = new File("C:/Temp/file.txt"); // C:/Temp/file.txt경로에 txt파일을 만든다.
FileWriter fw = new FileWriter(file, true);
fw.write("FileWriter는 한글로된" + "/r/n");
fw.write("문자열을 바로 출력할 수 있다." + "/r/n");
fw.flush(); // 출력 버퍼에 있는 데이터를 파일로 완전히 출력
fw.close(); // 파일을 닫는다.
System.out.println("파일에 저장되었습니다.");
}
}
|
cs |
'Back-End > Java' 카테고리의 다른 글
NIO 기반 입출력 및 네트워킹-1 (0) | 2019.04.23 |
---|---|
19.04.22 IO기반 입출력 및 네트워킹-2 (0) | 2019.04.22 |
19.04.20 스트림과 병렬 처리 (0) | 2019.04.20 |
19.04.19 컬렉션 프레임워크 (0) | 2019.04.19 |
19.04.18 람다식 (0) | 2019.04.18 |