FireDrago

[java] FileInputStream /OutputStream 사용 본문

프로그래밍/Java

[java] FileInputStream /OutputStream 사용

화이용 2023. 5. 11. 09:58
import java.io.*;

public class IoTest2 {
	public void main (String [] args) throws IOException  {
		FileInputStream fis = new FileInputStream("c:\\tmp\\example.txt");
		FileOutputStream fos = new FileOutputStream("result.txt");
		
		int data;
		
		while ((data=fis.read()) != -1 ) {
			fos.write(data);
		}
	}
}

java에서 입력을 받아올때, 출력을 할때는 stream을 사용한다. 

 

stream 에는 1byte 기반의 stream과 문자기반의 reader,writer가 있다.

 

예제에서는 FileInputStream과 FileOutputStream의 사용을 알아보자

 

FileInputStream fis = new FileInputStream("c:\\tmp\\example.txt");

먼저 FileinputStream의 객체를 생성한다. 매개변수로 읽어올 파일의 경로를 적어준다.

 

FileOutputStream fos = new FileOutputStream("result.txt");

FileOutputStream 객체도 생성한다. 위와 달리 매개변수로 파일명만 적었는데 이럴경우 Root 폴더에 result.txt 파일이 생성된다. 

 

root 폴더는 워크스페이스의 패키지 폴더이다.

 

int data;

//.read( )는 읽어올 내용이 없으면 -1 , 있으면 데이터 값을 리턴한다
while ((data=fis.read()) != -1 ) {
    fos.write(data);
//.write( )는 데이터 값을 result.txt에 적는 메서드
}

data 변수는 반드시 while 조건문에서 초기화 해야한다. 

 

data = fis.read( )를 변수선언과 동시에 초기화 하면 , 조건문에서 무한 반복문이 실행된다.