| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
100 バイト追加 、 2020年2月16日 (日) 04:27
編集の要約なし
==[[Java SE 7]]==
[[Java]] | [[SJC-P]] |
*AutoCloseable は close() のみを持つ Closeable インターフェースの子
=====例=====
import java.io.BufferedReaderBuffered[[R]]eader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReaderFile[[R]]eader;
import java.io.FileWriter;
import java.io.IOException;
public class AutomaticResourceManagement Automatic[[R]]esourceManagement {
public static void main(String[] args) {
try (BufferedReader Buffered[[R]]eader reader = new BufferedReaderBuffered[[R]]eader(new FileReaderFile[[R]]eader(new File("/home/piroto/work/test.txt")));
BufferedWriter writer
= new BufferedWriter(new FileWriter(new File("/home/piroto/work/out.txt")))
}
===ファイル・ディレクトリ変更の検知===
*WatchService WatchSer[[vi]]ce の作成。このサービスはWatchKeyへのキューからなる*WatchService WatchSer[[vi]]ce でモニターしたいディレクトリ、ファイルを登録
*イベントをリッスンするループの開始
*イベントが発生すると、WatchKey がキューに入れられる
import java.nio.file.WatchEvent.Kind;
import java.nio.file.WatchKey;
import java.nio.file.WatchServiceWatchSer[[vi]]ce;
public class FileChangeNotifications {
public static void main(String[] args) {
try {
WatchService watchService WatchSer[[vi]]ce watchSer[[vi]]ce = FileSystems.getDefault().newWatchServicenewWatchSer[[vi]]ce();
Path watchDir = Paths.get("/home/piroto/work");
watchDir.register(watchServicewatchSer[[vi]]ce, StandardWatchEventKinds.ENTRY_CREATEENT[[R]]Y_C[[R]]EATE, StandardWatchEventKinds.ENTRY_MODIFYENT[[R]]Y_MODIFY, StandardWatchEventKinds.ENTRY_DELETEENT[[R]]Y_DELETE);
while(true) {
WatchKey watchKey = watchServicewatchSer[[vi]]ce.take();
for (WatchEvent<?> event : watchKey.pollEvents()) {
Kind<?> kind = event.kind();
}
===フォークとジョイン===
*fork/join フレームワークは、ExecuterServiceインターフェースの実装フレームワークは、ExecuterSer[[vi]]ceインターフェースの実装
*複数のプロセッサーがある場合に有利
=====例=====
import java.util.concurrent.ForkJoinPool;
import java.util.concurrent.RecursiveTask[[R]]ecursiveTask;
public class ForkAndJoin {
pool.invoke(fnc);
System.out.println("RESULT[[R]]ESULT:" + fnc.get());
} catch (Exception e){
e.printStackTrace();
}
/**
* @see http://docs.oracle.com/javase/jp/7/api/java/util/concurrent/RecursiveTask[[R]]ecursiveTask.html
*/
class Fibonacci extends RecursiveTask[[R]]ecursiveTask<Integer> {
final int n;
info.typea.javase7.nio.Fibonacci@4f9c205b
info.typea.javase7.nio.Fibonacci@13105f32
RESULT[[R]]ESULT:610

案内メニュー