5-1.(5) 바이트기반 FileStream

zhyun·2020년 9월 26일
0

HighJava

목록 보기
40/67

바이트기반 스트림 종류 중

FileInputStream

: 파일로부터 바이트를 읽을 때 문자 단위 스트림으로 처리해주는 스트림

FileOutputStream

: 파일에 데이터를 쓸 때 문자단위 스트림으로 처리해주는 스트림

1.파일 읽기 예제

FileInputStream 사용

  • 방법1 : 파일경로를 문자열로 지정하기
FileInputStream fis = new FileInputStream("d:/D_Other/test2.txt");
  • 방법2 : 파일정보를 File 객체를 이용하여 지정하기
File file = new File("d:/D_Other/test2.txt");
FileInputStream fis = new FileInputStream(file);
  • 출력 : System.out.print((char) c);
    => int c; 문자를 int형으로 받고 (char)c 캐릭터형으로 출력

T05_FileStreamTest

public class T05_FileStreamTest {
	public static void main(String[] args) {
		//1>> FileInputStream 객체를 이용한 파일 내용 읽기
		FileInputStream fis = null;
		
		try {
			//방법1 (파일경로 정보를 문자열로 지정하기)
			//fis = new FileInputStream("d:/D_Other/test2.txt");//객체생성
			
			//방법2(파일정보를 File객체를 이용하여 지정하기)
			File file = new File("d:/D_Other/test2.txt");
			fis = new FileInputStream(file);
			
			int c;//읽어온 데이터를 저장할 변수
			while((c=fis.read()) != -1) {
				//읽어온 자료 출력하기
				System.out.print((char) c);
			}
			
			fis.close(); // 다 읽었으면 끝
			//length 이용해서 바이트 구해보기
            System.out.println("\n파일크기 : "+file.length()+"byte");
			
		}catch(FileNotFoundException ex) {
			System.out.println("지정한 파일이 없습니다.");
		}catch(IOException ex) {
			System.out.println("알 수 없는 입출력 오류입니다.");
		}
	}
}

Console:
"d:/D_Other/test2.txt"의 내용과 크기 출력댐

2.파일 출력 예제

FileOutputStream 사용

  • FileOutputStream 객체 생성
  • 경로파일 지정후 write() 하면 파일생성되고 그안에 문자 입력
  • FileInputStream 객체 생성 출력
public class T06_FileStreamTest {
	public static void main(String[] args) {
		//1>>파일에 출력하기
		FileOutputStream fos = null;
		
		//2>> write()
		try {
			//출력용 OutputStream 객체 생성
			fos = new FileOutputStream("d:/D_Other/out2.txt");
			
			for(char ch='a'; ch<='z'; ch++) { //byte기반으로 char write 가능 -> 형변환 필요없어서
				fos.write(ch);
			}
			System.out.println("파일에 쓰기 작업 완료...");
			
			//쓰기 작업 완료 후 스트림 닫기
			fos.close();
			
			//=================================================
			//3>>저장된 파일의 내용을 일거와 화면에 출력하기
			FileInputStream fis = new FileInputStream("d:/D_Other/out.txt");
			
			int c;
			while((c=fis.read()) != -1) {
				System.out.print((char) c);
			}
			System.out.println();
			System.out.println("출력 끝...");
			
			fis.close();
			
		}catch(IOException ex) {
			ex.printStackTrace();
		}
	}
}

Console:
파일 안에 입력한 문자열 출력댐!
지정한 폴더 -> 파일 열어서 입력됐는지 확인!

profile
HI :)

0개의 댓글