728x90
파일 입출력
파일에 데이터를 출력하거나 파일로부터 데이터를 읽어오는 작업을 말합니다.
1. 파일 생성하기
// 1. 파일 생성하기
File file = new File("D:\\PJH\\resource\\test.txt");
// 해당 파일이 존재하지않으면 새로 생성
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("파일객체생성 완료!");
}
2. 파일 읽어오기
// 2. 파일 읽어오기
try {
FileInputStream fis = new FileInputStream("D:\\PJH\\resource\\test.txt");
//FileInputStream fis = new FileInputStream(file);
int data;
while ( (data = fis.read()) != -1 ) {
// 읽어온 데이터가 -1이면 다 읽었다는 뜻
System.out.print((char)data);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
System.out.println("파일 읽어오기 작업 완료!");
}
3. 파일 작성하기
// 3. 파일 작성하기
try {
FileOutputStream fos = new FileOutputStream("D:\\PJH\\resource\\test.txt");
// 파일이 존재하지 않으면 새로 생성
// 파일이 존재하면 덮어쓰기
// FileOutputStream fos = new FileOutputStream("D:\\PJH\\resource\\test.txt", true);
// 파일이 존재할 때, '이어쓰기' : ,true
fos.write(65); // 'A'
fos.write(97); // 'a' -> 아스키 코드
// ★★★★★★
// OS와 소통하던 통로를 직접 닫아주지않으면 다음 수행시 문제가 발생할수도있다!
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객체로 파일 작성하기 작업 완료!");
}
실습
package class05;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test02 {
public static void main(String[] args) {
// "유지보수 용이"
final String path_START = "D:\\PJH\\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객체로 파일 작성하기 작업 완료!");
}
}
}
GitHub
https://github.com/Qkrwnsgus0522/Java
728x90