JAVA の変更点   

  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • JAVA へ行く。

#author("2019-08-14T06:38:20+00:00","default:pentacle","pentacle")
* JAVA [#xb69c247]
** sprintf [#n248fda5]
 String a = String.format("%s", "test");

** 日時 [#j7306e2c]
*** Date の事情 [#k570485e]
- 基本的に unixtime のラッパ
- timezone は自分で考慮

*** Calendar の事情 [#qa9de473]
- 現在時刻を得るには Calendar.getInstance(); などとめんどくさい・・
- タイムゾーンなども設定できる。
- toDate すると タイムゾーンは消える

** CSV [#t676a778]

*** Escape [#l73da5b8]
- 改行, ダブルクォート, カンマ を含む文字列は escape する必要がある
  org.apache.commons.lang.StringEscapeUtils.escapeCsv(string);

*** BOM [#tcac7cec]
- Excel で開くことができる CSV は SJIS でつくるか、BOM 付 UTF-8 で作る


#pre{{
public static byte[] addBOM(String string) {
	try {
		byte[] resultBytes;
		ByteArrayOutputStream stream = new ByteArrayOutputStream();
		stream.write(new byte[] { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF });
		stream.write(string.getBytes());
		resultBytes = stream.toByteArray();
		stream.close();
		return resultBytes;
	} catch (IOException e) {
		return string;
	}
}
}}

''response はこんな感じ'' 
 Response.ok(addBOM(resultString)).header("Content-Disposition", "attachment; filename=file.csv").type("text/comma-separated-values").build();

※ただし、このファイルを再度 JAVA で処理する際には BOM を捨てる処理が必要

* var_dump [#o60cde91]
php の var_dump に当たるものがある~

libraryDependencies += "org.apache.commons" % "commons-lang3" % "3.0"

ToStringBuilder