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

Java:PrintWriterをつかってみる

Last-modified: 2013-12-01 (日) 13:56:18 (2117d)
Top / Java:PrintWriterをつかってみる

FrontPage

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