http://hangumkj.blogspot.com/2009/06/fileoutputstream.html
위 사이트의 내용중 질문이 있습니다.

FileOutputStream fos = null;

try {  
  for(int i=0; i<10;i++) {  
  
 File file = new File(fullyName);
    
 fos = new FileOutputStream(file, true);
 fos.write(sb.toString().getBytes());
 fos.flush();
  }
} catch(Exception e) {
  e.printStackTrace();
} finally {
     fos.close();
}

위의 코드의 문제점은 fos를 마지막 10번째 fos만 close()를 하는것이 문제 입니다.

FileOutputStream 의 close()메소드를 호출하지 않으면 Windows 시스템에서는 파일을 lock하고 있습니다. lock의 해제는 프로그램을 종료하거나 gc가 일어나서 java가 더이상 참조를 하지 않을때 입니다.
그때에 비로소 삭제 될수 있는것이죠.
linux 시스템에서는 파일을 lock하지 않습니다.
---------------------------------------------------------------------------------------------------------------------------
여기까지가 내용이구요.

1. 위 코드에서 fos의 10번째만 close()를 하고 있다고 했는데, 그럼 어떤식으로 수정을 하면 되는건가요?

그리고  linux 시스템에서는 파일을 lock하지 않는다고 되어 있는데요.

2. 코드에는 문제가 있지만 linux에서는 lock을 하지 않기 때문에 크게 문제가 되지 않는다는 말인가요?

3. 아니면 linux에서는 lock을 하지 않기때문에 linux에서는 그냥 저렇게 쓰는게 맞다 이말인가요?

질문이 좀 어려운것 같기도한데, 고수분들께서 해석 좀 해주세요 ^^;;

부탁드립니다.