onsen code monkey

個人的な日記とプログラミング備忘録です

Java

【Kotlin/Java】0時0分0秒を取得する

UnixTimeStampでデータを管理することが多いのだけれど とある日の0時0分0秒を指定したい時に毎回しばらく調べてしまうのでメモする。Javaの場合 Date now = new Date(); // 2019-09-08 07:28:36 Date year = DateUtils.truncate(now, Calendar.YEAR); // 20…

【Java】ファイルロックで排他制御

よく使うのでメモ File lockFile = new File(fName + ".lock"); lockFile.deleteOnExit(); try (FileOutputStream fs = new FileOutputStream(lockFile)){ FileChannel ch = fs.getChannel(); FileLock lock = null; for (int i = 0; i < (TIMEOUT / WAIT); …

【Java】カレントディレクトリのパス等、システム設定値を取得する

System.getPropertyでシステム設定値の一覧を取得する Properties props = System.getProperties(); props.list(System.out); システムプロパティを指定して値を取得する (例)カレントディレクトリのパスを取得する場合 String dir = System.getProperty("…

【Java】try-with-resourcesを使ってファイルの読み書き

try-with-resourcesを使えばいちいちCloseやDisposeしなくてもリソースを自動で解放してくれるC#のusing的なやつ条件 ・JavaSE7以降 ・クラスがAutoCloseableインターフェースおよびCloseableインターフェースを実装していること import java.io.FileInputSt…

【Java】ループの中で+を使用して文字列を連結してはいけない

ループの中で+を使用して文字列を連結するとループの度にStringを生成するので回数が増えるほどOutOfMemoryしたり処理が遅くなる可能性が高くなる。 public static void main(String[] args) { String hoge = ""; for (int i=0; i<10; i++) { hoge += "(^q^…

【Java】メッセージダイアログを表示する

一番シンプルなやつ JOptionPane.showMessageDialog(null, "メッセージだよ"); 第一引数・・・ダイアログのFrame。nullの場合はデフォルトのFrameが使用される 第二引数・・・表示するメッセージ いろいろ弄りたい場合は以下参考 import javax.swing.*; impo…