나는 base64로 인코딩 된 데이터를 파일에 기록하고, 즉시 디코드하려고합니다. 나는이 작품 생각이러한 래핑 된 Java I/O 개체를 몇 개 닫아야합니까?
BufferedWriter bw = new BufferedWriter(
new OutputStreamWriter(
new Base64OutputStream(
new FileOutputStream(myFile, false)));
을 가지고, 내 finally
블록에 나는 bw.close()
전화 - 즉, close the outermost wrapper입니다. 그것으로 충분합니까? 아니면 익명의 중간 객체가 누설 될 것입니까?
코드를 살펴 보았지만 Sun의 독점적 인 OutputStreamWriter 인코딩 핸들러 구현에 매달려있었습니다. 또한 문서에 명시 적으로 표시되어 있지 않습니다.
다음 중 중복 : http://stackoverflow.com/questions/6586866/closing-nested-streams 및 : http://stackoverflow.com/questions/8080649/do-i-have-to-close-fileoutputstream- which-wrapped-by-printstream – sara
왜 내가 그걸 찾을 수 없었는지 모르겠습니다. 감사합니다. – Coderer