인스턴스를 만드는 방법은 여러가지가 있지만 그중에 PrintWriter라는 class가 있다.
PrintWriter 라는 class는 사용법이 조금 다르다. 우선 만들고 싶은 파일명을 PrintWriter( ) 괄호 안에 입력한다.
그 앞에 new 라는 것을 입력하여 새로운 복제본을 만들려고 한다. 그리고 p1에 이것을 담았고 p1에는 아무거나 들어가면 안되기 때문에 p1에는 PrintWriter라는 class의 인스턴스만 들어간다는 뜻에서 데이터타입으로 PrintWriter로 지정을 하였다.
하지만 오류가 발생한다. PrintWriter는 특별한 작업을 해주어야 하는데 그것은 package를 불러와야 하는 작업이다. PrintWriter class는 java.io 라는 package에 들어있으므로 import로 불러온다. 그래도 오류가 발생하는데 밑줄친 부분은 만약 File1.txt라는 파일이 없을 경우를 가정하여 java가 예외를 만들어놓기 때문이다.
예외 상황을 알기 전까지 우선은 Add Throws declaration을 누른다. 그다음 IOException 항목을 누른다.
p1라는 인스턴스에서 텍스트를 입력하고 복제하여 p2를 만든 후 실행을 하고 refresh 하면 왼쪽 하단에 파일이 생성된 것을 볼 수 있다.
class가 하는 작업이 일회용이 아니라 긴 맥락의 작업을 요구할때는 class를 복제한 인스턴스를 활용하는 것이 효과적이다. Constructor가 없는 class는 일회용이며 Constructor가 있는 것은 인스턴스를 만드는것이 허용된다.