Perが述べたように、テキストファイルを開いてバイトをストリーミングせずに、テキストファイルの内容を決定する方法は実際にはありません。http を使用してファイルをダウンロードすると、ファイルのタイプを示す MIME タイプを取得できる場合がありますが、ほとんどの場合、それは単なる「オクテット ストリーム」です。
ブルート フォースで改行 ("\n") が見つかるまで読んでから、1 文字戻ってキャリッジ リターン ("\r") があるかどうかを確認できますが、任意の方法でデータを読み取ります。
1) ファイルから少なくとも 2 つまたは 3 つのレコードを取得するサンプル サイズのバイトを選択して読み込みます。
2) 遭遇した各バイト (i'massumign single byte char set here) をヒストグラムとして保存します。これを行うには、バイト値でインデックス付けされた配列にカウントを格納するか、辞書を使用できます。
3) キャリッジ リターンとライン フィードの値のカウントを確認します。改行があり、キャリッジ リターンがない場合は、UNIX ファイルです。キャリッジ リターンとライン フィードがカウントされる場合、それは Windows ファイルです。
このアプローチでできることは、受信ファイルの品質チェックです。ヒストグラムにアルファ数値ではない文字がありますか? 次に、誰かがあなたにバイナリ ファイルを渡しました。すべて大文字が必要ですか? 次に、大文字以外のカウントを探します。テキスト以外のファイルを処理しないようにするために実行できるチェックがいくつかあります。