일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ORACLE #TIGER #SCOTT #SCOTT계정 #오라클학습계정 #프로그래밍 #SQL #SQLORACLE #오라클 #오라클연습 #오라클연습계정 #오라클연습문제 #WHERE절 #오라클조건절
- java #array #자바 #배열 #프로그래밍 #코딩 #자바프로그래밍
- 정처기필기합격 #정처기합격후기
- jsp #게시판만들기 #자바로게시판만들기 #웹테스트 #JNDI #myora #Oracle #오라클 #DAO #DTO #아파치톰캣 #웹자바셋팅 #모델1 #모델1방식 #모델1방식웹프로그래밍 #웹프로그래밍
- 어노테이션 #@WebServlet #WebServlet #
- 기말고사 #방통대기말고사 #방통대후기 #방통대기말고사후기 #방통대2023년1학기 #방통대1학기 #방통대C프로그래밍 #방통대장학금 #방통대영어회화1
- Init-param #context-param #
- 정처기3회 #정보처리기사2023
- View #
- 8 실무에서 가장 많이 사용하는 SQL
- 자바 #웹자바 #webJava #java #코딩 #코딩초보 #ojdbc #서블릿 #자바서블릿 #javaServelet #servelet #httpServlet
- 마이바티스환경설정
- 서블릿선언 #서블릿선언방법 #
- 자바 #웹자바 #JAVA #WEB #WEBJAVA #WEBPROGRAMMING #웹 #웹프로그래밍 #코딩 #CODING #모델1 #모델2 #모델1방식 #모델2방식
- Doit #Doit오라클 #Doit시리즈 #연습문제
- 갤러리제작 #갤러리만들기 #jsp갤러리 #jsp게시판 #jsp프로그래밍 #jsp웹프로그래밍 #jsp웹 #jsp모델1방식 #사진업로드 #jsp사진업로드 #jdbc6 #jdbc드라이버다운 #jdbc드라이버무료다운
- sql #오라클 #불리언형 #boolean #webjava #java #jsp #Mybatis #마이바티스 #마이바티스환경설정 #모델1 #모델1프로그래밍 #Batis #마이바티스다운로드 #web설정 #웹프로그래밍 #게시판 #게시판제작 #게시판만
- cos.jar #cos드라이버 #파일업로드드라이버 #루피는귀여워 #마이바티스 #MyBatis #마이바티스sql #마이바티스DB #마이바티스jsp #마이바티스이클립스 #mapper #config.xml #마이바티스다운로드
- 방통대 #방송통신대학교 #컴퓨터과학 #컴퓨터과학과 #컴과 #방통대컴퓨터과학과 #방통대컴과 #방통대파이썬 #방통대C #방통대자바
- 자바웹프로그래밍
- spring #스프링 #전자정부표준프레임워크 #표준프레임워크 #자바스프링 #스프링다운로드 #자바스크립트 #웹프로그래밍설정 #웹프로그래밍셋팅
- Controller
- web.xml #배포지시자 #서블릿테스트
- Model #
- 정처기 #정처기필기 #정보처리기사 #정보처리기사필기 #정보처리기사2023 #정처기2023 #정처기3회 #정보처리기사3회 #정보처리기사실기 #정처기실기 정처기합격
- union #sql99 #외부조인 #오라클조인 #sql조인 #자체조인 #비등가조인 #비등가조인 #테이블복사 #오라클테이블 #null인데이터출력
- tern다운로드 #메이븐다운로드 #maven #스프링라이브러리 #자바라이브러리 #톰캣설정 #WAS #웹어플리케이션서버
- 서블릿 #자바모델1 #자바모델2 #mvc #mvc패턴
- QUERY #DML #SQL문 #내림차순정렬 #오름차순정렬
- html #자바와서블릿 #자바와웹연결 #웹연결
- Today
- Total
장미의 개발일기
Java: IOStream : InputStream, OutputStream / 문자 Stream: Reader, Writer 본문
Java: IOStream : InputStream, OutputStream / 문자 Stream: Reader, Writer
민장미 2023. 5. 1. 23:21Java에서는 문자를 외부에 출력하거나, 내부로 가져올 때, 크게 두 가지의 방식이 있다.
1. IOStream : InputStream & OutputStream => Byte Stream이라고도 한다.
input은 입력받아 가져오는거, output은 밖으로 내보내기
-중요한 것은 IO Stream은 단방향이다.
쉽게 설명하자면, 자바 밖으로 나가는 빨대, 안으로 들어오는 빨대가 각각 따로 있다는 뜻이다.
-문자,이미지 ,영상 등을 1byte씩 읽어오거나, 출력한다. 그래서 바이트스트림이라고도 부른다.
-1차 스트림(노드 스트림) : FileInputStream, OutputStream
-2차 스트림(필터) : BufferedInputStream, BufferedOutputStream,
DataInputStream, DataOutputStream, ObjectInputStream, ObjectOutputStream
자세히 보면 알겠지만, 종류는 총 3가지다. 버퍼는 프로그램의 속도를 빠르게 해주고,
Data는 데이터의 자료형까지 출력해주지만 자료형의 순서가 매우 중요하다(바이트 코드로 출력되기 때문에
순서가 안맞으면 알아볼 수 없다) Object는 아직 진도가 안나가서 추후 포스팅 예정
2. 문자 Stream : Writer, Reader
Reader는 문자를 읽는 기능을 가짐, Wirter는 밖으로 내보내는 기능을 가짐
IO Stream과는 다르게 2byte씩 받거나 송출한다. (자바에서 문자가 2byte이기때문)
그리고 오직 문자만 입출력이 가능한 통로다.
-1차 스트림(노드 스트림) : FileReder, FileWriter
-2차 스트림(필터) : BufferedReader, BufferedWriter
IO Stream과 다르게 필터 종류가 버퍼 딱 1가지다. 역시 프로그램의 속도를 빠르게 해주는 기능을 가진다.
IO Stream, Reader & Wirter 모두 추상클래스인데, 2차 스트림이 그 추상클래스를 직접적으로 상속 받은 것은 아니다.
관계도 및 포인트 정리한건 노트에 그려서 업로드 예정
아래 예시는 FileOutputStream에 대한 코드다.
위에 적어 놓은 입,출력 관련 클래스의 객체를 만들면 예외처리 하라고 빨간줄이 뜬다.
try catch 외에도 finally 블록을 넣어 반드시 자원해체를 해주어야만 한다. **
package repeat;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Ex3_FileOutputStream {
public static void main(String[] args) {
String path = "C:\\KOSMO132\\java\\학원필기\\0501\\myFiles\\file1.txt";
FileOutputStream fos = null;
try {
fos = new FileOutputStream(path,true);
fos.write(97);
fos.write(99);
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}finally {
try {
if(fos != null ) {
fos.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
실행 후에 파일을 열어보면, 실제로 path 경로의 파일에 97,99의 유니코드(문자)가 적혀져 있다.
FileOutputStream 객체를 생성할 때, 파일 경로 옆에 true옵션을 추가하면 append 기능이 실행된다.
내가 `d을 적고 지운 뒤, `dac 를 적어 실행 시켰는데, `d가 삭제되지 않고 다음 글자인 `dac 앞에 누적되어 있었다.
=> `d `dac
'개발일기 > Java' 카테고리의 다른 글
자바로 음악재생 해보기 : 쓰레드 Thread (Daemon Thread) (1) | 2023.05.07 |
---|---|
File IO Stream과 Buffered IO Stream 속도 비교 (0) | 2023.05.01 |
File class : 지정된 폴더의 파일 찾기, 없으면 생성하기 (0) | 2023.05.01 |
인터페이스 상속 : 예제 ( 중앙부서, 모형부서3) (0) | 2023.04.25 |
메소드 오버라이딩 : 다른 예제 (동물) (0) | 2023.04.25 |