まずはコード1を見てください。 // コード1 def copyFile() = { val in = new FileInputStream(new File("foo.txt")) val out = new FileOutputStream(new File("bar.txt")) val buf = new Array[Byte](1024) var len = 0; while ({ len = in.read(buf); len != -1 }) { out.write(buf, 0, len) } in.close() out.close() } なんのへんてつもないファイルコピー(foo.txt -> bar.txt)のコードです。 別にこれでいいっちゃいいのですが、こういったコードの場合、closeを忘れたら残念なことが起こり得ます。 using という訳でさんざん既出で