Java:PrintWriterをつかってみる のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Java:PrintWriterをつかってみる へ行く。
- 1 (2013-04-21 (日) 22:11:39)
- 2 (2013-08-24 (土) 02:14:21)
Java:PrintWriter?をつかってみる †
PrintWriter?は、println()で1行ファイルに書き込んだりできるので便利です。
端的にはこんな感じで使います。
PrintWriter writer = new PrintWriter(new BufferedWriter( new FileWriter(new File(filepath)))); writer.println("これでファイルに書き込めます。"); writer.close(); //最後に閉じます。
また、ファイルパスのディレクトリがなかったときのために、以下のようなコードをPrintWriter?を生成する前に仕込みます。
File outfile = new File(listOutPath); File dir = outfile.getParentFile(); if (!dir.exists()) { dir.mkdirs(); }
これで、パスに含まれるディレクトリがない場合はディレクトリを作成してくれます。
ソースコード †
List<List<String>>を引数にとって内容をファイルに出力するサンプルです。
まあ、端的にはこんな感じのデータをターゲットに作ってみました。
URL、ページタイトル、ハッシュ値
※BeanにせずにListを使っているのは、Pythonになれてるからかなーw
■OutputWriter?.java
import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.List; public class OutputWriter { public OutputWriter() { } public boolean writeList(String listOutPath, List<List<String>> list) { PrintWriter writer = null; try { File outfile = new File(listOutPath); File dir = outfile.getParentFile(); if (!dir.exists()) { dir.mkdirs(); } writer = new PrintWriter(new BufferedWriter(new FileWriter(outfile))); for (List<String> item : list) { writer.println(item.get(2) + "\t" + item.get(0) + "\t" + item.get(1)); } } catch (IOException e) { //TODO エラー処理 e.printStackTrace(); System.err.println("ファイルアクセス時にエラー発生"); return false; } finally { writer.close(); } return true; } }