강의로 돌아가기
-

FileInputStream과 FileOutputStream은 static 클래스인가요?

FileInputStream fis = null; 
FileOutputStream fos = null;        

예제를 보면 이런 식으로 적혀 있는데, static 클래스인 건가요?
아니면 null을 이용하면, new없이 클래스를 인스턴트화할 수 있는 건가요?

그리고 다음 줄에

fis = new FileInputStream("src/javaIO/exam/ByteExam1.java");
fos = new FileOutputStream("byte.txt");

이런 식으로 인스턴트를 생성하여 입력하고 있는데

FileinputStream fis =  new FileInputStream("src/javaIO/exam/ByteExam1.java");
FileOutputStream fos = new FileOutputStream("byte.txt");

처음부터 이렇게 하지 않는 이유가 있나요?

1 개의 답변
-
FileInputStream fis = null; 
FileOutputStream fos = null; 

static으로 선언하지 않았기 때문에 static 클래스 아닙니다.
null을 이용하여 객체가 의미 없는 값을 가리키게 한 것으로, 실제 인스턴스가 생성된 것은 아닙니다.

변수 선언과 값을 할당을 따로 해준 이유는 try-catch 때문입니다.
만약 try 내부에 선언과 동시에 초기화가 되어 있다면 try-catch 외부에서 fis와 fos 변수를 사용할 수 없기 때문에, 외부에서 따로 선언을 해주어 더 효율적으로 사용할 수 있게 만든 것 입니다.

  • -
    덕분에 문법과 그 의미를 이해했습니다. 답변 감사합니다^^
    -―2017.08.18 11:24
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.