18.8 기본 타입 스트림

바이트 스트림에 DataInputStream과 DataOutputStream 보조 스트림을 연결하면 기본 타입 8가지 값을 입출력할 수 있다.

 

DataInputStream과 DataOutputStream 보조 스트림을 연결하는 코드

DataInputStream dis = new DataInputStream(바이트 입력 스트림);
DataOutputStream dos = new DataOutputStream(바이트 출력 스트림);

 

 

18.9 프린트 스트림

PrintStream(바이트 기반)과 PrintWriter(문자 기반)는 프린터와 유사하게 출력하는 print(), println(), printf() 메소드를 가지고 있는 보조 스트림.

콘솔에 출력하기 위해 사용한 System.out.println()에서 out이 PrintStream 타입이다.

PrintStream은 바이트 출력 스트림과 연결되고,

PrintWriter는 문자 출력 스트림과 연결된다.

 

 

18.11 File과 Files 클래스

java.io 패키지와 java.nio.file 패키지는 파일과 디렉토리 정보를 가지고 있는 File과 Files 클래스를 제공.

Files는 File을 개선한 클래스로, 조금 더 많은 기능을 제공

 

● File 클래스

File file = new File("C:/Temp/file.txt");

File 객체를 생성했다고 해서 파일이나 디렉토리가 생성되는 것은 아니다.

경로에 실제 파일이나 디렉토리가 없더라도 예외가 발생하지 않는다.

파일이나 디렉토리가 실제로 있는지 확인하려면 File 객체를 생성하고 난 후 exist() 메소드를 호출해보면 된다.

boolean isExist = file.exists();  // 파일이나 폴더가 존재한다면 true 리턴

 

○ false를 리턴할 경우, 표의 메소드로 파일 또는 폴더를 생성할 수 있다.

리턴 타입 메소드 설명
boolean createNewFile() 새로운 파일 생성
boolean mkdir() 새로운 디렉토리 생성
boolean mkdirs() 경로상에 없는 모든 디렉토리 생성

 

 

○ true를 리턴할 경우, 표의 메소드를 이용한다.

 

● Files 클래스

정적 메소드로 구성되어 있어 File 클래스처럼 객체로 만들 필요가 없다.

정적 메소드는 운영체제의 파일 시스템에게 파일 작업을 수행하도록 위임한다.

위의 메소드들은 매개값으로 Path 객체를 받는다.

Path 객체는 파일이나 디렉토리를 찾기 위한 경로 정보를 갖고 있는데, 정적 메소드인 get() 메소드로 얻을 수 있다.

Path path = Paths.get(String first, String ...);
// 예시
Path path = Paths.get("C:/Temp/dir/file.txt");
Path path = Paths.get("C:/Temp/dir", "file.txt");
Path path = Paths.get("C:", "Temp", "dir", "file.txt");

'JAVA' 카테고리의 다른 글

21일차 2024 - 03 - 26  (0) 2024.03.26
20일차 2024 - 3 - 25 (Spring 시작)  (1) 2024.03.25
18일차 2024 - 3 - 21  (0) 2024.03.21
17일차 2024 - 3 - 20  (0) 2024.03.20
16일차 2024 - 3 - 19  (0) 2024.03.19

+ Recent posts