Java では元々 java.io.* に含まれる I/O ライブラリをサポートしてきましたが、Windows と Linux 系で扱いが異なったり、ファイル権限操作やシンボリックリンク操作に制約がありました。これを改善した NIO(New I/O) が java.nio.* でサポートされました。また、Java SE 7 からは NIO.2 と呼ばれるライブラリも追加され、大半は java.nio.file.* に含められています。現在では I/O(java.io.*) よりも NIO や NIO.2 (java.nio.*) を使用することが推奨されています。 古い書き方の場合、入出力に関するクラスの多くは使用が終わると close() する必要があります。 try { FileReader in = new FileReader("file.txt"); : in.close();