일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- HTML역사
- DoIt
- 숫자형식오류
- 자바
- 페이지분석
- SQL입문
- R1C3
- 자바 오류
- 크롤링 오류
- dbms
- 함수
- 크롤링
- 웹브라우저 수용도
- 예제
- 키-값 데이터베이스
- DoitSQL
- 웹 브라우저 전쟁
- DoitSQL입문
- 함수 선언
- 예외
- 데이터베이스
- 생성자
- SQL
- 우아한테크
- 자바 예외
- html
- 배열 예제
- Doit입문SQL
- 숫자 형식
- 배열 3요소
Archives
- Today
- Total
프로그래밍
[자바 기초] day14 : 파일입출력 본문
728x90
반응형
2023.05.22.화
파일입출력
파일입출력은 말그대로 파일을 생성하여 읽고 작성하는 등의 작업을 말한다
1. 파일 생성하기
File file = new File(파일경로);
file.createNewFile();
파일에게는 기본생성자가 없으므로 String, URL, 파일객체등을 인자로 작성해주어야 한다
해당 파일이 존재하지 않으면 생성한다
2. 파일 읽어오기
FileInputStream fis = new FileInputStream(file);
int data;
while((data=fis.read())!=-1) { // 읽어 온 데이터가 -1일시 파일 끝(EOF)
System.out.print((char)data);
}
자바에서는 파일 끝(EOF)을 -1로 치환하여 가져오기 때문에 -1을 읽어올때까지 파일을 읽어온다
(char)data를 하는 이유는 파일을 char(문자) 자료형이 아닌 int(정수) 자료형으로 읽어오기 때문이다.
3. 파일 작성하기
FileOutputStream fos = new FileOutputStream("D:\\JHyun\\resource\\test.txt",true);
fos.write(65); // 아스키 코드 'A'
fos.write(97);
해당 파일이 존재하지 않으면 생성하며
파일이 존재하면 덮어쓴다
덮어쓰는 것이 아닌 이어쓰는 것을 원한다면 true 인자를 추가로 작성하면 된다
4. 파일 스트림 닫기
fos.flush();
fos.close();
마지막으로
OS와 소통하던 통로를 직접 닫아주지 않으면 다음 수행시 문제가 생길 수 있기 때문에 닫아준다
파일 스트림 사용시 try catch 구문을 사용하지 않으면 에러가 발생하여 실행할 수 없는데
이는 자바가 외부요인으로 인해 에러가 발생할 가능성을 시사하고 있기 때문이다
try catch 구문으로 예외처리를 하면 된다
(주로 파일 찾을 수없음, 외부요인으로 인한 에러)
예제)
package class04;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test03 {
public static void main(String[] args) {
// "유지보수 용이"
final String path_START="D:\\KIM\\resource\\";
final String path_FILE01="test01";
final String path_FILE02="test02";
final String path_END=".txt";
try {
FileInputStream fis=new FileInputStream(path_START+path_FILE01+path_END);
int data;
String num="";
while( (data=fis.read()) != -1 ) {
num+=(char)data;
}
System.out.println(num);
data=Integer.parseInt(num);
System.out.println(data);
if(data%2==0) {
System.out.println("짝수");
}
else {
System.out.println("홀수");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("fis객체로 파일 읽어오기 작업 완료!");
}
try {
FileOutputStream fos=new FileOutputStream(path_START+path_FILE02+path_END);
for(int i=97;i<=122;i++) {
fos.write(i);
}
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("fos객체로 파일 작성하기 작업 완료!");
}
}
}
728x90
반응형
'자바 > 자바 기초' 카테고리의 다른 글
[자바 기초] day15 : MVC(Model, View, Controller) (0) | 2023.05.23 |
---|---|
[자바 기초] day14 : 파일입출력 예제(사진 복사하기) (0) | 2023.05.22 |
[자바 기초] day14 : 스레드(Tread) (0) | 2023.05.22 |
[자바 기초] day13 : 예외와 예외처리 (1) | 2023.05.19 |
[자바 기초] day12 : 컬렉션 프레임워크 (0) | 2023.05.19 |
Comments