콘솔
- 콘솔은 시스템을 사용하기 위해 키보드로 입력을 받고 모니터로 출력하는 소프트웨어를 말합니다.
- 유닉스나 리눅스 운영체제는 터미널에 해당합니다.
- 윈도우 운영체제는 명령 프롬포트에 해당합니다.
- 자바는 데이터를 입력받을 때 System.in , 출력할 때는 System.out을 사용합니다.
System.in 필드
- 자바는 콘솔에서 키보드의 데이터를 입력 받을수 있도록 System 클래스의 in 정적필드를 제공합니다.
- System.in은 InputStream 타입의 필드입니다.
InputStream is = System.in;
키보드로부터 어떤 키가 입력되었는지 확인하기 위해 read() 메소드로 1byte를 읽어오면 됩니다.
int keyCode = is.read();
예시) 키보드로부터 라인 단위 문자열 얻기
package secfin.exam01;
import java.io.*;
public class GetLineStringFromKeyboard {
public static void main(String[] args) throws Exception {
//InputStream을 Reader로 변환하고 다시 BufferedReader로 연결
InputStream is = System.in;
Reader reader = new InputStreamReader(is);
BufferedReader br = new BufferedReader(reader);
while(true) {
System.out.print("입력하기: ");
String lineStr = br.readLine();
if(lineStr.equals("end")) break;
System.out.print("입력된 내용: " + lineStr);
System.out.println();
}
br.close();
}
}
System.out 필드
- 콘솔에서 모니터로 데이터를 출력하기 위해서는 System 클래스의 out 정적필드를 사용합니다.
- System.out은 PrintStream 타입의 필드 입니다.
Scanner 클래스
- Scanner 클래스는 입출력, 보조 스트림이 아닙니다.
- java.util 패키지에서 제공하는 클래스입니다.
Scanner scanner = new Scanner(Syste.in);
String inputData = scanner.nextLine();
File 클래스
- java.io 패키지에서 제공하는 File 클래스는 파일 및 폴더 (디렉터리) 정보를 제공해 주는 역할을 합니다.
- File 객체를 생성하기 위해 문자열 경로를 제공해줘야 합니다.
- 경로 구분자는 운영체제 마자 다른데 윈도우에서는 / , \를 둘 다 사용할 수 있습니다.
- 유닉스나 리눅스에서는 /를 사용합니다.
- File 객체를 생성했다고 파일이나 폴더가 생성되는 것은 아닙니다.
- 해당 경로에 파일이나 폴더가 있는지 확인하기 위해 File객체를 생성 후
exists() 메소드를 호출하면 됩니다.
File file = new File("위치/file.txt);
예시) exists() 메소드
boolean isExist = file.exists();
알아두기
exists() 메소드의 리턴값이 false일 때
리턴 타입 | 메소드 | 설명 |
boolean | createNewFile() | 새로운 파일을 생성 |
boolean | mkdir() | 새로운 폴더 생성 |
boolean | mkdirs() | 경로상에 없는 모든 폴더 생성 |
exists() 메소드의 리턴값이 true일 때
리턴 타입 | 메소드 | 설명 |
boolean | delete() | 파일 또는 폴더를 삭제 |
boolean | canExecute() | 실행할 수 있는 파일인지 여부를 확인 |
boolean | canRead() | 읽을 수 있는 파일인지 여부를 확인 |
boolean | canWrite() | 수정및 저장이 가능한 파일인지 여부 확인 |
String | getName() | 파일의 이름 리턴 |
String | getParent() | 부모 폴더를 리턴 |
File | getParentFile() | 부모 폴더를 File객체로 생성후 리턴 |
String | getPath() | 전체 경로 리턴 |
boolean | isDirectory() | 폴더인지 여부 확인 |
boolean | isFile() | 파일인지 여부 확인 |
boolean | isHidden() | 숨김파일인지 여부 확인 |
long | lastModified() | 마지막 수정 날짜 및 시간 리턴 |
long | length() | 파일의 크기 리턴 |
알아두기 2
- 파일 또는 폴더의 정보를 얻기 위해 File객체를 단독으로 사용할 수 있지만
- 파일 입출력 스트림 객체를 생성할 때 경로 정보를 제공할 목적으로도 사용합니다.
- 아래와 같이 스트림 생성자에 문자열 경로 대신에 다음과 같이 File 객체를 대입할 수 있습니다.
//첫번째 방법
FileInputStream fis = new FileInputStream("경로/imgage.gif");
//두번째 방법
File file = new File("경로/imgage.gif");
FileInputStream fis = new FileInputStream(file);
'학습단 > JAVA 학습단' 카테고리의 다른 글
혼자 공부하는 자바 10기 활동 회고 (0) | 2023.08.17 |
---|---|
6주차 완료 (0) | 2023.08.17 |
23. 혼공자 23일차(보조 스트림) (0) | 2023.08.16 |
22. 혼공자 22일차(입출력 스트림_2) (0) | 2023.08.15 |
21. 혼공자 21일차(입출력 스트림) (0) | 2023.08.14 |