본문 바로가기

JAVA

2.파일 입출력(Data)

//쓰기

1.바이트단위 쓰기

 - 1바이트 단위 > 문자코드값1바이트 > ASCII코드 지원


2.파일에 데이터 저장하기 

1) 스트림 객체 생성하기(쓰기전용) /연결하는 선을 (스트림)이라고 한다.

2) 스트림 객체를 사용해서 쓰기 작업 진행

3) 스트림 객체 닫기


3. 쓰기 전용

**

FileOutputStream stream = new FileOutputStream("경로"); -> 열기 **(file,boolean append) -> append (true : 이어쓰기/ false or 생략 : 덮어쓰기)

steam.close(); -> 닫기


Process notepad = new ProcessBuilder("notepad.exe").start(); -> 프로그램 열기



4. 읽기

- 바이트 단위 읽기 (1byte 일기 -> ASCII코드)

- System.in.read() 유사

**

FileInputStream steam = new FileInputStream("경로"); -> 스트림 열기

//쓰기

1)int code = steam.read();

  System.out.println((char)code));


2)int code = -1;

while((code=steam.read())!=-1){ code가 -1이 아닌경우에만 실행 => stream.read는 문자 코드값으로 읽어옴

System.out.println((char)code); -> 문자단위로 하나씩 출력

}

steam.close(); -> 스트림 닫기


5. 쓰기

- 바이트 단위 쓰기 > 문자(2byte) 단위 쓰기

- 문자열도 지원하면서, 한글도 지원한다.

**

FileWriter writer = new FileWriter("경로"); -> 스트림 열기 


//쓰기

writer.write(문자열);

writer.write(문자);

writer.write(숫자); => 문자 코드 값\


writer.close(); -> 스트림 닫기


6.메모장에 쓰기

**

자바 콘솔에서 쓰는것은  파일에 직접 쓰기가 아니라
출력 버퍼에 쓰는것이다!


7.정리

-FileOutputStream : 1byte 문자 쓰기

-FileInputStream : 1byte 문자 읽기

-FileWriter : 2byte 문자 쓰기 + 라인 단위 쓰기(String)

-FileReader : 2byte 문자 읽기 + 라인 단위 읽기(X) + 문자 단위 읽기(O)


8. 쓰기

- 문자 + 문자열 쓰기

- BufferedWriter(부모) / FileWriter(자식)

* BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));//콘솔,파일 둘다 읽음

* BufferedWriter writer = new BufferedWriter(new FileWriter("경로")); //콘솔,파일 둘다 쓸수있음.

- writer.newLine() == writer.write("\r\n");


9.읽기

- 문자 + 문자열 읽기

- 라인 단위 읽기 지원(***)


10. Test

//회원 정보

 -이름, 나이, 주소, 전화

 -파일 입출력

A.데이터 파일 포맷

 ex)이름,나이,주소,전화

-파일 절대 경로

File temp = new File("C:\\Class\\File\\test.txt");

-파일 상대 경로

test.txt -> .\test.txt

' .' : 현재 실행파일이나 작업 공간이 있는 폴더

File temp = new File("test.txt");

C:\Class\Java\JavaTest\test.txt ->프로젝트 루트 

System.out.println(temp.getAbsolutePath());






'JAVA' 카테고리의 다른 글

익명 객체,Anonymous Object  (0) 2018.08.06
파일 입출력 예제  (0) 2018.08.02
1.파일 입출력(Data)  (0) 2018.08.02
File.io  (0) 2018.08.01
Stack 구현  (0) 2018.07.31