java の基本 入出力ストリーム・スレッド、コンパイル・アーカイブ・実行を学ぶ丁度良い OpenAI ChatGPT風 テキスト表示。github の解説。
●まずは ファイルを標準入力へリダイレクトして標準出力するだけ。DOS の「type」コマンドや UNIX の「cat」と同じ動作。「run.bat」「run.sh」でコンパイル・アーカイブ・実行。
first commit. STDIN -> STDOUT, nearly equal "cat"(unix), "type"(dos)
↓
●ChatGPT が1文字ずつ表示するように 1文字毎に 10ms遅延。
ADD delay 10ms per a charcter
↓
●プログラム内からファイルオープン・ファイル読み出し。
MODIFY FILE(hard code) -> STDOUT
↓
●メインスレッドでファイル読み出ししながらエンターキーで中断可能にする為、入力スレッドで並列処理。
abort [Enter], use input Thread.
↓
●メインスレッドでエンターキー監視し、ファイル読み込みを別スレッドで並列処理へ変更。
abort [Enter], use file Thread.
↓
●起動パラメータで、ファイル、遅延(ミリ秒)、リピート 指定可能に。
ADD command argument file, delay, repeat.
↓
●読み出しファイルのエンコーディングを UTF-8 で指定。java7以前可能な実装。
file encoding UTF8 (hard code), ok java7
↓
●起動パラメータで、読み出しファイルのエンコーディングを指定可能に。パラメータ例外時に、利用可能エンコーディング表示。
ADD command argument file encoding, ok java7.
java -jar out/Slowcat.jar -d 0 -e UTF-8 starwars.txt > out.txtなどとすれば、UTF-8ファイルを Java実行環境のデフォルトエンコーディングに変換可能。