반응형
16.1 File 클래스
-. File 클래스는 이름 그대로 파일을 관리할 수 있는 클래스이다.
-. 파일에 대한 입력과 출력을 처리하기 위해서는 먼저 로컬(Local)지역의 파일과 연결하여 기본 작업을 수행하는 법을 익혀야 한다.
(그 방법을 제공하는 클래스가 File 클래스 이다.)
■ File 클래스
① Fields(Field : 내용)
-. static String pathSeparator : 경로에 대한 구분자, ':' ← window
-. static char pathSeparatorChar : 경로에 대한 구분자 char형
-. static String separator : 파일 경로에 대한 구분자, '\'
-. static char separatorChar : 파일 경로에 대한 구분자 char형
② Constructs(Construct : 내용)
-. File(File parent, String child) : 상위 폴더 parent를 경로로 하는 파일명 child와 연결하는 생성자
-. File(String pathname) : pathname을 전체 경로로 하는 파일에 대한 연결 생성자
-. File(String parent, String child) : 상위 폴더 parent를 경로로 하는 파일명 child와 연결하는 생성자
-. File(URL url) : url의 파일과 연결하는 생성자
③ Methods(Return_type_Method : 내용)
-. boolean canRead() : 파일을 읽을 수 있는지 확인
-. boolean canWrite() : 파일에 데이터를 쓸 수 있는지 확인
-. boolean createNewFile() : 새로운 파일을 생성
-. static File createTempFile(String prefix, String suffix) : temp 파일을 prefix 접두어와 suffix 접미어를 붙여 생성
-. static File createTempFile(String prefix, String suffix, File Directory) : temp 파일을 pxefix 접두어와 suffix 접미어를 붙여 디렉토리 경로에 생성
-. boolean delete() : 파일을 즉시 삭제
-. void deleteOnExit() : 프로그램 종료시 파일 삭제
-. boolean exists() : 파일의 존재 유무를 확인
-. File getAbsoluteFile() : 파일의 절대 경로를 File 객체로 얻어옴
-. String getAbsolutePath() : 파일의 상대 경로에 대한 경로
-. String getName() : 파일 이름
-. File getParentFile() : 파일의 상위 폴더까지의 경로 File 객체
-. String getPath() : 현재 파일의 경로
-. boolean isAbsolute() : 절대 경로인지를 확인
-. boolean isDirectory() : 디렉토리인지 확인
-. boolean isFile() : 파일인지 확인
-. boolean isHidden() : 숨긴 파일인지 확인
-. long length() : 최종 수정 시간 획득
-. String[] list() : 해당 파일이 폴더일 경우 그 속의 모든 파일이나 폴더의 리스트 문자열 배열로 획득
-. String[] list(FilenameFilter filter) : 해당 파일이 폴더일 경우 그 속의 내용들 중 filter 객체의 구현한 내용을 필터링
-. File[] listFiles(FileFilter filter) : 해당 파일이 폴더일 경우 그 속의 내용을 파일 배열로 얻어 오는데 filter 객체에 구현한 내용을 필터링
-. static File[] listROOTS() : 현재 시스템의 루트 경로를 File 객체 배열로 획득(C:\, D:\ 등)
-. boolean mkdir() : 폴더를 생성
-. boolean mkdirs() : 파일 이름을 dest로 변경
-. boolean setLastModified(long, time) : 최종 수정 시간 수정
-. boolean setReadOnly() : 읽기 전용 파일로 만듦
-. URL toURI() : 파일의 URI 경로를 획득
-. URL toURL : 파일의 URL 경로를 획득
16.2 1byte 입 · 출력
-. 자바에서 처리하는 입력과 출력은 스트림(Stream)에 의존한다.
- .모든 형태의 입력과 출력은 1byte의 흐름으로 이루어져 있다.
- .텍스트기반으로 한 형태로 바꾸어 주거나 아니면 객체를 기반으로 한 형태를 바꾸어 주는 클래스가 있다.
-. 1byte의 입력과 출력 기본 클래스는 InputStream과 OutputStream이다.
■ 1byte 입력
① 콘솔 입력용
-. FileInputStream fis = new FileInputStream(FileDescriptor.in);
-. BufferedInputStream bis = new BfferedInputStream(fis);
-. DataInputStream dis = new DataInputStream(bis);
-. dis.read...
② 파일 입력용
-. File file = new File("파일명");
-. FileInputStream fis = new FileInputStream(file);
-. BufferedInputStream bis = new BufferedInputStream(fis);
-. DataInputStream dis = new DataInputStream(bis);
-. dis.read...
③ 네트워크 입력용
-. Socket soc = new Socket(…);
-. BufferedInputStream bis = new BufferedInputStream(soc.getInputStream());
-. DataInputStream dis = new DataInputStream(bis);
-. dis.read...
■ 1byte 출력
① 콘솔 출력용
-. FileOutputStrema fos = new FileOutputStream(FileDescriptor.out);
-. BufferedOutputStream bos = new BufferedOutputStream(fos);
-. DataOutputStream dos = new DataOutputStream(bos);
-. dos.write...
② 파일 출력용
-. File fie = new File("파일명");
-. FileOutputStream fos = new FileOutputStream(file);
-. BufferedOutputStream bis = new BufferedOutputtStream(fos);
-. DataOutputStream dis = new DataOutputStream(bis);
-. dos.write...
③ 네트워크 출력용
-. Socket soc = new Socket(…);
-. BufferedOutputStream bis = new BufferedOutputStream(soc.getOutputStream());
-. DataOutputStream dos = new DataOutputStream(bos);
-. dos.write...
16.3 텍스트 입 · 출력
-. 텍스트 입력과 출력은 스트림을 변형시켜 주는 클래스를 사용한다.
-. 텍스트 스트림은 2byte의 문자 체계를 가진(예를 들어 한글)형태의 입력과 출력에 사용된다.
-. 기본 클래스로는 Writer와 Reader가 사용된다.
■ 2byte 입력
① 키보드 입력용
-. InputStreamReader isr = new InputStreamReader(System.in);
-. BufferedReader br = new BufferedReader(isr);
-. br.readLine();
② 파일 출력용
-. File fie = new File("파일명");
-. FileReader fr = new FileReader(file);
-. BufferedReader br = new BufferedReader(fr);
-. PrintWriter pw = new PrintWriter(bw);
-. br.readLine();
③ 네트워크 입력용
-. Socket soc = new Socket(…);
-. InputStreamReader isr = new InputStreamReader(soc.getInputStream());
-. BufferedReader br = new BufferedReader(isr);
-. br.readLine();
■ 2byte 출력
① 콘솔 출력용
-. OutputStreamWriter osw = new OutputStreamWriter(System.out);
-. BufferedWriter bw = new BufferedWriter(osw);
-. PrintWriter pw = new PrintWriter(bw);
-. pw.println(…);
② 파일 출력용
-. File fie = new File("파일명");
-. FileWriter fw = new FileWriter(file);
-. BufferedWriter bw = new BufferedWriter(fw);
-. PrintWriter pw = new PrintWriter(bw);
-. pw.println(…);
③ 네트워크 출력용
-. Socket soc = new Socket(…);
-. OutputStreamWriter osw = new OutputStreamWriter(soc.getOutputStream());
-. BufferedWriter bw = BufferedWriter(osw);
-. printWriter pw = new PrintWriter(bw);
-. pw.println(…);
※ 리다이렉션(Redirection)
-. 원래 입 · 출력의 대상이 되는 곳의 방향(Direction)을 원하는 곳으로 입 · 출력 변경하는 작업을 리다이렉션(Redirection)이라고 한다.
(예) System.out이라는 것은 콘솔로 출력되도록 기본 설정이 되어 있다. 그러나 이것이 출력 방향을 파일로 변경하면 앞으로의
System.out은 파일을 대상으로 하는 출력이 된다.
16.4 객체 입 · 출력
-. 객체단위의 입 · 출력도 마찬가지로 스트림을 기반으로 한다.
(클래스 상속관계는 1byte 계열, 객체의 입력이나 출력은 콘솔과 키보드를 통해서 이루어지지 않는다.)
-. 객체의 입 · 출력에서는 직렬화라는 개념이 반드시 필요하다.
-. 직렬화라는 거은 클래스의 구성을 파일이나 네트워크로 정상적으로 전달하기 위해 형태를 재구성하는 것이다.
(다시 말해 일려로 줄으 지어서 전송하여야 한다.)
-. java.io.Serializable이라는 인터페이스를 제공하므로 전송하고자 하는 객체에 대해 Serializable를 구현해 주기만 하면 되는데,
이 인터페이스 내부에서는 아무런 메서드도 있지 않다. 그래서 재정의 할 메서드도 없다.
(클래스의 선언부에서 「implements Serializable」이라고만 적어 주면 된다.)
■ 객체 입력
① 파일 입력용
-. File file = new File("파일명");
-. FileInputStream fis = new FileInputStream(file);
-. BufferedInputStream bos = new BufferedInputStream(fis);
-. ObjectInputStream ois = new ObjectInputStream(bis);
-. try {
objec obj = ois.readObject();
}
catch(ClassNotFoundException ee) { }
② 네트워크 출력용
-. Socket soc = new Socket(…);
-. BujfferedInputStream bos = new BufferedInputStream(soc.getInputStream());
-. ObjectInputStream ois = new ObjectInputStream(bis);
-. try {
objec obj = ois.readObject();
}
catch(ClassNotFoundException ee) { }
■ 객체 출력
① 파일 출력용
-. File file = new File("파일명");
-. FileOutputStream fos = new FileOutputStream(file);
-. BufferedOutputStream bos = new BufferedOutputStream(fos);
-. ObjectOutputStream oos = new ObjectOutputStream(bos);
-. oos.writeObject(…);
② 네트워크 출력용
-. Socket soc = new Socket(…);
-. BujfferedOutputStream bos = new BufferedOutputStream(soc.getOutputStream());
-. ObjectOutputStream oos = new ObjectOutputStream(bos);
-. oos.writeObject(…);
-. File 클래스는 이름 그대로 파일을 관리할 수 있는 클래스이다.
-. 파일에 대한 입력과 출력을 처리하기 위해서는 먼저 로컬(Local)지역의 파일과 연결하여 기본 작업을 수행하는 법을 익혀야 한다.
(그 방법을 제공하는 클래스가 File 클래스 이다.)
■ File 클래스
① Fields(Field : 내용)
-. static String pathSeparator : 경로에 대한 구분자, ':' ← window
-. static char pathSeparatorChar : 경로에 대한 구분자 char형
-. static String separator : 파일 경로에 대한 구분자, '\'
-. static char separatorChar : 파일 경로에 대한 구분자 char형
② Constructs(Construct : 내용)
-. File(File parent, String child) : 상위 폴더 parent를 경로로 하는 파일명 child와 연결하는 생성자
-. File(String pathname) : pathname을 전체 경로로 하는 파일에 대한 연결 생성자
-. File(String parent, String child) : 상위 폴더 parent를 경로로 하는 파일명 child와 연결하는 생성자
-. File(URL url) : url의 파일과 연결하는 생성자
③ Methods(Return_type_Method : 내용)
-. boolean canRead() : 파일을 읽을 수 있는지 확인
-. boolean canWrite() : 파일에 데이터를 쓸 수 있는지 확인
-. boolean createNewFile() : 새로운 파일을 생성
-. static File createTempFile(String prefix, String suffix) : temp 파일을 prefix 접두어와 suffix 접미어를 붙여 생성
-. static File createTempFile(String prefix, String suffix, File Directory) : temp 파일을 pxefix 접두어와 suffix 접미어를 붙여 디렉토리 경로에 생성
-. boolean delete() : 파일을 즉시 삭제
-. void deleteOnExit() : 프로그램 종료시 파일 삭제
-. boolean exists() : 파일의 존재 유무를 확인
-. File getAbsoluteFile() : 파일의 절대 경로를 File 객체로 얻어옴
-. String getAbsolutePath() : 파일의 상대 경로에 대한 경로
-. String getName() : 파일 이름
-. File getParentFile() : 파일의 상위 폴더까지의 경로 File 객체
-. String getPath() : 현재 파일의 경로
-. boolean isAbsolute() : 절대 경로인지를 확인
-. boolean isDirectory() : 디렉토리인지 확인
-. boolean isFile() : 파일인지 확인
-. boolean isHidden() : 숨긴 파일인지 확인
-. long length() : 최종 수정 시간 획득
-. String[] list() : 해당 파일이 폴더일 경우 그 속의 모든 파일이나 폴더의 리스트 문자열 배열로 획득
-. String[] list(FilenameFilter filter) : 해당 파일이 폴더일 경우 그 속의 내용들 중 filter 객체의 구현한 내용을 필터링
-. File[] listFiles(FileFilter filter) : 해당 파일이 폴더일 경우 그 속의 내용을 파일 배열로 얻어 오는데 filter 객체에 구현한 내용을 필터링
-. static File[] listROOTS() : 현재 시스템의 루트 경로를 File 객체 배열로 획득(C:\, D:\ 등)
-. boolean mkdir() : 폴더를 생성
-. boolean mkdirs() : 파일 이름을 dest로 변경
-. boolean setLastModified(long, time) : 최종 수정 시간 수정
-. boolean setReadOnly() : 읽기 전용 파일로 만듦
-. URL toURI() : 파일의 URI 경로를 획득
-. URL toURL : 파일의 URL 경로를 획득
16.2 1byte 입 · 출력
-. 자바에서 처리하는 입력과 출력은 스트림(Stream)에 의존한다.
- .모든 형태의 입력과 출력은 1byte의 흐름으로 이루어져 있다.
- .텍스트기반으로 한 형태로 바꾸어 주거나 아니면 객체를 기반으로 한 형태를 바꾸어 주는 클래스가 있다.
-. 1byte의 입력과 출력 기본 클래스는 InputStream과 OutputStream이다.
■ 1byte 입력
① 콘솔 입력용
-. FileInputStream fis = new FileInputStream(FileDescriptor.in);
-. BufferedInputStream bis = new BfferedInputStream(fis);
-. DataInputStream dis = new DataInputStream(bis);
-. dis.read...
② 파일 입력용
-. File file = new File("파일명");
-. FileInputStream fis = new FileInputStream(file);
-. BufferedInputStream bis = new BufferedInputStream(fis);
-. DataInputStream dis = new DataInputStream(bis);
-. dis.read...
③ 네트워크 입력용
-. Socket soc = new Socket(…);
-. BufferedInputStream bis = new BufferedInputStream(soc.getInputStream());
-. DataInputStream dis = new DataInputStream(bis);
-. dis.read...
■ 1byte 출력
① 콘솔 출력용
-. FileOutputStrema fos = new FileOutputStream(FileDescriptor.out);
-. BufferedOutputStream bos = new BufferedOutputStream(fos);
-. DataOutputStream dos = new DataOutputStream(bos);
-. dos.write...
② 파일 출력용
-. File fie = new File("파일명");
-. FileOutputStream fos = new FileOutputStream(file);
-. BufferedOutputStream bis = new BufferedOutputtStream(fos);
-. DataOutputStream dis = new DataOutputStream(bis);
-. dos.write...
③ 네트워크 출력용
-. Socket soc = new Socket(…);
-. BufferedOutputStream bis = new BufferedOutputStream(soc.getOutputStream());
-. DataOutputStream dos = new DataOutputStream(bos);
-. dos.write...
16.3 텍스트 입 · 출력
-. 텍스트 입력과 출력은 스트림을 변형시켜 주는 클래스를 사용한다.
-. 텍스트 스트림은 2byte의 문자 체계를 가진(예를 들어 한글)형태의 입력과 출력에 사용된다.
-. 기본 클래스로는 Writer와 Reader가 사용된다.
■ 2byte 입력
① 키보드 입력용
-. InputStreamReader isr = new InputStreamReader(System.in);
-. BufferedReader br = new BufferedReader(isr);
-. br.readLine();
② 파일 출력용
-. File fie = new File("파일명");
-. FileReader fr = new FileReader(file);
-. BufferedReader br = new BufferedReader(fr);
-. PrintWriter pw = new PrintWriter(bw);
-. br.readLine();
③ 네트워크 입력용
-. Socket soc = new Socket(…);
-. InputStreamReader isr = new InputStreamReader(soc.getInputStream());
-. BufferedReader br = new BufferedReader(isr);
-. br.readLine();
■ 2byte 출력
① 콘솔 출력용
-. OutputStreamWriter osw = new OutputStreamWriter(System.out);
-. BufferedWriter bw = new BufferedWriter(osw);
-. PrintWriter pw = new PrintWriter(bw);
-. pw.println(…);
② 파일 출력용
-. File fie = new File("파일명");
-. FileWriter fw = new FileWriter(file);
-. BufferedWriter bw = new BufferedWriter(fw);
-. PrintWriter pw = new PrintWriter(bw);
-. pw.println(…);
③ 네트워크 출력용
-. Socket soc = new Socket(…);
-. OutputStreamWriter osw = new OutputStreamWriter(soc.getOutputStream());
-. BufferedWriter bw = BufferedWriter(osw);
-. printWriter pw = new PrintWriter(bw);
-. pw.println(…);
※ 리다이렉션(Redirection)
-. 원래 입 · 출력의 대상이 되는 곳의 방향(Direction)을 원하는 곳으로 입 · 출력 변경하는 작업을 리다이렉션(Redirection)이라고 한다.
(예) System.out이라는 것은 콘솔로 출력되도록 기본 설정이 되어 있다. 그러나 이것이 출력 방향을 파일로 변경하면 앞으로의
System.out은 파일을 대상으로 하는 출력이 된다.
16.4 객체 입 · 출력
-. 객체단위의 입 · 출력도 마찬가지로 스트림을 기반으로 한다.
(클래스 상속관계는 1byte 계열, 객체의 입력이나 출력은 콘솔과 키보드를 통해서 이루어지지 않는다.)
-. 객체의 입 · 출력에서는 직렬화라는 개념이 반드시 필요하다.
-. 직렬화라는 거은 클래스의 구성을 파일이나 네트워크로 정상적으로 전달하기 위해 형태를 재구성하는 것이다.
(다시 말해 일려로 줄으 지어서 전송하여야 한다.)
-. java.io.Serializable이라는 인터페이스를 제공하므로 전송하고자 하는 객체에 대해 Serializable를 구현해 주기만 하면 되는데,
이 인터페이스 내부에서는 아무런 메서드도 있지 않다. 그래서 재정의 할 메서드도 없다.
(클래스의 선언부에서 「implements Serializable」이라고만 적어 주면 된다.)
■ 객체 입력
① 파일 입력용
-. File file = new File("파일명");
-. FileInputStream fis = new FileInputStream(file);
-. BufferedInputStream bos = new BufferedInputStream(fis);
-. ObjectInputStream ois = new ObjectInputStream(bis);
-. try {
objec obj = ois.readObject();
catch(ClassNotFoundException ee) { }
② 네트워크 출력용
-. Socket soc = new Socket(…);
-. BujfferedInputStream bos = new BufferedInputStream(soc.getInputStream());
-. ObjectInputStream ois = new ObjectInputStream(bis);
-. try {
objec obj = ois.readObject();
catch(ClassNotFoundException ee) { }
■ 객체 출력
① 파일 출력용
-. File file = new File("파일명");
-. FileOutputStream fos = new FileOutputStream(file);
-. BufferedOutputStream bos = new BufferedOutputStream(fos);
-. ObjectOutputStream oos = new ObjectOutputStream(bos);
-. oos.writeObject(…);
② 네트워크 출력용
-. Socket soc = new Socket(…);
-. BujfferedOutputStream bos = new BufferedOutputStream(soc.getOutputStream());
-. ObjectOutputStream oos = new ObjectOutputStream(bos);
-. oos.writeObject(…);
반응형
'JAVA > JAVA Programming' 카테고리의 다른 글
[JAVA] 숫자에 쉼표(콤마;Comma)넣기, 천(1000) 단위 구분 (0) | 2012.09.07 |
---|---|
[JAVA] HashMap (2) | 2012.09.05 |
[JAVA] 현재시간 출력 YYYY-MM-DD HH:MM:SS 방식 (0) | 2012.02.02 |
[JAVA] AWT 윈도우창 닫기 (0) | 2012.01.31 |
[JAVA] 접근 권한의 크기와 내용 (0) | 2012.01.19 |