トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

Java:PrintWriterをつかってみる の変更点

Top / Java:PrintWriterをつかってみる

[[FrontPage]]

*Java:PrintWriterをつかってみる [#p28cf0c0]

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();
 }

これで、パスに含まれるディレクトリがない場合はディレクトリを作成してくれます。  

***ソースコード [#jbe35d08]
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;
 	}
  }


***使用例 [#acf8fedf]

Jmeterのログで、結果レポートの日付を変換して出力するサンプル。