파일 대상 입출력
2022. 12. 10. 14:29ㆍ카테고리 없음
File fiel = new File("data");
자바에서 제공되는 파일 클래스를 이용해서 데이터라는 이름의 파일을 객체로 생성한다.
하드디스크에 실제 존재하든 안하든 자바 메모리상에 만들어지는 객체이다 ( 경로를 가지고 있는 객체이다).
1) Stream =흐름 (파일을 출력하기 위한 흐름)
FileOutputStream pos =null;
2)이클래스를 이용해서 객체를 생성할때 어떤 파일로 출력할 것인가? 나타낸다.
절대 경로 , 상대경로 사용 할수 있다.
pos = new FileOutputStream(file); //파일=목적지= 빨대를 꼽는다.
3) 입출력 클래스 종류
Stream :1byte 자료형 기반, 한글은 안된다
Reader, Writer: Char 형이 디폴트 이다. 2byte 단위로 된다. 채팅 , 문자단위로 바로바로 해석시 사용
pos.write();
4)우리가 파일을 삭제하거나 , 이동 시킬시 현재 파일이 열려있어서 안된다라는 경고가 뜬 경우가 있다.
이것 처럼 빨대를 꽂았다, 이상태에서 프로그램 종료시 os는 누가 사용하고 있다고 생각하고 사용중으로 남는다.
close();
Output 전체 코드
package main123;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Exam01 {
public static void main(String[] args) {
File file = new File("data");//자바에서 제공되는 파일 클래스 이용해서 데이터 파일 만든다.
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file,true);
fos.write(65);
}catch(IOException e){
e.printStackTrace();
}finally {
if(fos != null) {
try {
fos.close();
}catch(IOException e) {}
}
}
}
}
5)InputStream도 똑같다.
ex)아스키코드 : 컴퓨터는 0,1밖에 모르기에 문자를 인식시키기 위한 역속으로 아스키 코드(1byte)가 있고 자방에서는 아스키 코드가 지원하지 않는 한글등 전세계 글자를 표현하기 위해서 유니코드(2byte)를 지원한다.
ex) Stream ->1byte기반 한글사용할시 문자가 깨진다, "가"를 작성시 2byte중 1byte값만 가져온다.
package main123;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class Exam2 {
public static void main(String[] args) {
File file = new File("data");//자바에서 제공되는 파일 클래스 이용해서 데이터 파일 만든다.
/*
* System.out.println(file.length());//file클래스가 하는일 ( 파일 정보 관리)
* System.out.println(file.canExecute());//실행 가능
* System.out.println(file.canRead());//읽을 수있는
* System.out.println(file.getAbsolutePath());//절대 경로
*/
FileInputStream fis = null;
try {
fis = new FileInputStream(file);
int data =0;
while((data=fis.read()) != -1) {//데이터의 1byte를 읽어 들인다.
//읽어들인 데이터가 -1이 아니면 버블이 잘 들어왔다면
System.out.print((char) data);//-1:EOF( 파일의ㅡ 끝을 나타내는 값)
}
System.out.println(data);
data = fis.read(); System.out.println(data);
data = fis.read(); System.out.println(data);
data = fis.read(); System.out.println(data);
data = fis.read(); System.out.println(data);
}catch(IOException e){
e.printStackTrace();
}finally {
if(fis != null) {
try {
fis.close();
}catch(IOException e) {}
}
}
}
}
"data "파일
package main123;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Exam01 {
public static void main(String[] args) {
File file = new File("data");//??¹?¿¡¼ ??°ø??´? Æ??? ??·¡½º ??¿??ؼ ?????? Æ??? ¸¸??´?.
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file,true);
fos.write(65);
}catch(IOException e){
e.printStackTrace();
}finally {
if(fos != null) {
try {
fos.close();
}catch(IOException e) {}
}
}
}
}