IO (Input & Output) 입출력 |
* 프로그램상의 데이터를 외부매체(모니터, 스피커, "파일")로 출력하거나 * 입력장치 (마우스, 키보드, 마이크, "파일")로 입력받는 과정 IO를 진행하려면? 반드시!! 프로그램 외부매체와의 통로를 만들어야 한다 => Stream 스트림 |
Stream |
* 스트림의 특징 1. 단방향 - 입력이면 입력, 출력이면 출력 / 입력용 스트링 따로, 출력용 스트림이 따로 존재 - 동시에 입출력을 하고자 한다면? 하나의 스트림으로는 불가능하다 2. 선입선출(FIFO) - Queue, 먼저 전달한 값이 먼저 나오는 것 (순서대로 들어가서 나온다) - 단점 : 앞에 있는 값이 나가지 않으면 뒤의 값도 나가지 못하기 때문에 시간 지연 문제가 발생할 수 있다. |
* 스트림의 구분 - 통로의 사이즈 1. 바이트스트림 : 1Byte가 이동할 수 있는 좁은 통로 => 입력 (XXXInputStream) / 출력 (XXXOutputStream) 2. 문자스트림 : 2Byte가 이동할 수 있는 넓은 통로 => 입력(XXXReader) / 출력 (XXXWriter) - 외부매체와의 직접적인 연결 여부 1. 기반스트림 : 외부 매체와 직접적으로 연결되는 통로 2. 보조스트림 : 기반스트림만으로는 부족한 성능을 향상시켜주는 용도의 스트림 => 단독사용 불가(기반스트림을 만들고 추가해주는 용도) => 속도향상, 자료형에 맞춰서 변환, 객체단위로 입출력 도움 등등... |
File 클래스로 파일 만들기 createNewFile( ); : 파일을 생성해주는 메소드 => try ~ catch 예외처리를 해줘야 함 => 파일생성은 try 블록 내에서!! try { file1.createNewFile(); } catch (IOException e) { e.printStackTrace(); } |
1. 별도의 경로 지정은 하지 않고 파일명만 제시해서 생성 => 현재 프로젝트 폴더 내에 파일이 생성된다 File file1 = new File("test.text"); // test.text == 파일 이름 : file1 객체 생성 file1.createNewFile(); // "test" 파일 생성 |
2. 경로지정 후 파일 생성 File file2 = new File("C:\\Users\\ullebulle\\Desktop\\test.txt"); // file2 객체 생성 file2.createNewFile() // 경로에 "test" 파일 생성 |
3. 폴더 생성 후 파일 생성 (프로젝트 내 생성) File forder = new File("ullebulle") forder.mkdir( ); // .mkdir( ) : 폴더를 생성해주는 메소드 File file3 = new File("ullebulle\\test.txt"); file3.createNewFile( ); |
4. 지정한 경로에 폴더 생성 후 파일 생성 File forder2 = new File("C:\\Users\\ullebulle\\Desktop\\game"); forder2.mkdir(); File file4 = new File("C:\\Users\\ullebulle\\Desktop\\game\\test.txt"); file4.createNewFile(); |
* File에서 제공하는 메소드들 file5.isFile( ) // 파일인지 아닌지, 파일이면 true, 폴더면 false file5.getName( ) // 파일명 추출 file5.getParent( ) // 상위폴더명 추출 file5.length( ) // 파일 크기 file5.getAbsolutePath( ) // 절대경로 |
'국비 > Java' 카테고리의 다른 글
[14-4] Java - 보조스트림 (0) | 2022.04.26 |
---|---|
[14-3] Java - 바이트스트림, 문자스트림 (0) | 2022.04.26 |
[14-1] Java - Wrapper Class (0) | 2022.04.26 |
[13-3] 다형성 실습문제 (0) | 2022.04.25 |
[13-2] Java - API java.lang패키지, String /Math 클래스와 주요 메소드 (0) | 2022.04.25 |