zip 形式で圧縮されたテキストファイルを行単位で読み込むメソッドです。できることは判っていても、スクラッチから作ろうとすると、あれこれ試行錯誤するのが目に見えています。参考サイトをブックマークしておき、必要な時にそこを参照すれば良いのですが、どこにブックマークしたかを忘れることも多く、結局インターネットで探すことになります。ところが、この手の情報は豊富にあるが故に、それぞれのコーディングの仕方の違いに悩んだりして、それはそれで勉強にはなるものの、効率を落とす原因になります。
そういうわけで、自分の書き方で最低限必要な処理を用意して、それを備忘録としました。そのため、圧縮されているファイルやフォルダの個数チェックやなど、気の利いたこと一切していません。テキストファイルをそのままzip ファイルにしてあるというのが前提です。
動作を確認した環境は次の通りです。
- OS: Fedora 22 (x86_64)
- Java: Java SE 1.8.0_65-b17
- IDE: NetBeans IDE 8.0.2
void readZipFile(ZipFile zipFile) throws IOException { Enumeration<? extends ZipEntry> entries = zipFile.entries(); ZipEntry entry = entries.nextElement(); InputStream in = zipFile.getInputStream(entry); InputStreamReader sr = new InputStreamReader(in, "UTF-8"); try (BufferedReader br = new BufferedReader(sr)) { String line = null; while ((line = br.readLine()) != null) { System.out.println(line); } } }
参考サイト