Memorandums?

This blog is written about technical-discoveries and daily-events.

Java

InputStreamReaderでの文字列の受信

InputStreamReaderは、char文字(単一文字)単位でしかデータを受け取れません。 そのため、改行までを文字列として取得するのは、それなりに大変です。 今回は、文字列に変換する方法を示します。それならBufferedReaderのreadLineメソッドで余裕じゃん! と…

ImageIO#readのBugSolver(代替方法)

画像送信プログラムを作製中、、Bug ID: JDK-4821108 IIOException thrown when reading PNG imagesこのバグ報告が出ていることに暫く気づかず、ずっとImageIOクラスで戦っていました。 しかしながら、Bugにより、ImageIO#readを使用しての画像送信は無理で…

クロスプラットフォーム問題

マルチプラットフォームに対応しているJavaであっても、 OSの違いに気をつけなくてはいけない場面があります。まず、OSを認識するプログラムです。 public String getOS() { if (System.getProperty("file.separator").equals("\\")) return "WINDOWS"; else…

Windowsとcmdにおける文字処理

Java Windowsプログラムを書いているときに、 なかなかWindowsOSとcmdには苦戦しました。 Windowsでできること ファイル名にゼロ幅文字可能 ゼロ幅文字を付加すれば、同名ファイルとならない Windowsでできないこと ファイル名に特殊文字(",/,\,|,,:)が付け…

javaの疑問を解消しよう part1

問題。 public class C { public static void main(String[] args) { new B(new A()); } } class B { B(C c) { } } class A extends C { } このソースコードは正しいですか? 答え。正しいです。(もちろんこのソースコードに意味はありません) Cクラスでは、…

インスタンス生成・メソッド実行せずとも機能を受けつぐ方法

共通の動作があり、それをまとめる。 しかし、それは付属的な動作であり、extendsするにはもったいない。 (Baseクラスを継承する必要があるため、継承できない) だからといって、インスタンス生成したり、staticメソッドでも呼び出すのは面倒。 こんな時に役…