私は単純なXOR暗号化を実行したミニアプリを書く必要があった就職面接テストを受けなければなりませんでした。私はFileInputReaderを使って各バイトをプルし、そのキーでXOR演算を実行し、その結果をFileOutputStreamに戻しました。私は何を考えていたのですか?Java FileInputStreamからバイトを読み込むときに-1と0xffを区別する方法はありますか?
FileInputStreamは、32ビットの符号付き型intを返します。 1バイトしか受け取らない場合、それを「バイト」タイプにキャストすることができます。 FileInputStreamは、EOFに達すると-1も返します。しかし、-1 == 0xffは2の補数のバイナリであるため、読み込まれたバイトがEOFではなく0xffであればどうなりますか?
特殊な場合(EOFなど)を除いて数学的に返されるバイト数は0xffですか?または、これはあなたが読んでいるデータに応じて説明しなければならない状況ですか?
+1、あなたはとても速いです! 5秒で私を打つ:( – doNotCheckMyBlog