問題タブ [inputstreamreader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - InputStreamReader のバッファリングの問題
残念ながら、2 種類の文字エンコーディングを持つファイルからデータを読み取っています。
ヘッダーとボディがあります。ヘッダーは常に ASCII であり、本文がエンコードされる文字セットを定義します。
ヘッダーは固定長ではなく、その内容/長さを判別するためにパーサーを実行する必要があります。
ファイルも非常に大きくなる可能性があるため、コンテンツ全体をメモリに取り込まないようにする必要があります。
そこで、単一の InputStream から始めました。最初に ASCII の InputStreamReader でラップし、ヘッダーをデコードして本文の文字セットを抽出します。すべて良い。
次に、正しい文字セットを使用して新しい InputStreamReader を作成し、それを同じ InputStream にドロップして、本文の読み取りを試みます。
残念ながら、javadoc はこれを確認しており、InputStreamReader が効率的な目的で先読みを選択する可能性があります。したがって、ヘッダーの読み取りは、本文の一部/すべてを噛み砕きます。
この問題を回避するための提案はありますか? 手動で CharsetDecoder を作成し、一度に 1 バイトずつフィードするのは良い考えでしょうか (おそらくカスタムの Reader 実装にラップされていますか?)
前もって感謝します。
編集:私の最終的な解決策は、バッファリングのない InputStreamReader を記述して、本文の一部を噛むことなくヘッダーを解析できるようにすることでした。これは非常に効率的ではありませんが、生の InputStream を BufferedInputStream でラップするので、問題にはなりません。
java - base64エンコーダーとInputStreamReaderの使用に関する問題
データベースにいくつかのCLOB列があり、Base64でエンコードされたバイナリファイルを配置する必要があります。これらのファイルは大きくなる可能性があるため、ストリーミングする必要があります。一度にすべてを読み取ることはできません。
org.apache.commons.codec.binary.Base64InputStream
エンコードを行うために使用していますが、問題が発生しています。私のコードは本質的にこれです
上記のコードを実行すると、更新の実行中にこれらの1つが取得
java.io.IOException: Underlying input stream returned zero bytes
され、InputStreamReaderコードの奥深くにスローされます。
なぜこれが機能しないのですか?reader
ファイルストリームから読み取るベース64ストリームから読み取ろうとするように思えますが、すべてが満足できるはずです。
java - JavaメソッドClass.getResourceAsStream()を使用してjarからUTF-8テキストファイルを読み取るにはどうすればよいですか?
Javajarファイル内にUTF-8ファイルが保存されています。getResourceAsStream()メソッドを使用して読み取ろうとしていますが、関数によって返される入力ストリームリーダーは、デフォルトのエンコード(WindowsではANSIエンコード)を使用します。
jarファイル内からUTF-8テキストファイルを読み取るにはどうすればよいですか?
c# - テキストファイルの行をランダムに選択する c# streamreader
こんにちは、私はテキスト ファイルから読み込んでおり、各行を個別の変数に入れたいと考えています。私のプログラミングクラスから覚えていることから、配列は動的にすることはできません。したがって、15 個の配列を設定し、テキスト ファイルに 1000 行ある場合、何ができ、どのように実装すればよいでしょうか。
必要なのは1行だけですが、行をランダムに選択したいです。linetext は、すべてのリクエストの末尾に \r\n が追加されたテキスト ファイル全体です。
\r\n をランダムに選択してから 4 を数え、次の \r\n まで文字列を追加します。このアイデアの問題は、呼び出される文字列に \ も含まれることです。何かアイデアはありますか?
java - JavainputStreamReader文字セット
ターゲットIPアドレスにpingを実行して応答を受け取りたい。これを実現するために、Javaでruntime.execメソッドとプロセスクラスを使用してWindowsコマンドラインを使用しています。inputStreamReaderを使用して応答を取得しています。
私のデフォルトの文字セットはwindows-1254で、トルコ語です。受信すると、応答にトルコ語の文字が含まれていますが、コンソールにトルコ語の文字が正しく表示されません。
取得した応答から数値を取得したいのですが、検索している値にトルコ語の文字が含まれているため、調べても見つかりません。
コードは以下のとおりです。私が知っておく必要があるのは、トルコ語の文字をここに表示する方法です。
java - Webページのコンテンツを読む
こんにちは私はjavaを使用してドイツ語の文字を含むWebページのコンテンツを読みたいのですが、残念ながら、ドイツ語の文字は奇妙な文字として表示されます。ここに助けがあれば私のコードです:
java - InputStream からテキスト データとバイナリ データの両方を読み取る
バイナリ ストリームからデータを読み取ろうとしていますが、その一部は UTF-8 として解析する必要があります。
InputStream
バイナリ データに を直接使用し、UTF-8 テキストに をその上に使用すると、最大文字数InputStreamReader
を読み取るように指示されていても、リーダーが先読みして後続のバイナリ データを台無しにするため、機能しません。n
この質問はRead from InputStream in multiple formatsと非常によく似ていることを認識していますが、そこで提案されている解決策は HTTP ストリームに固有のものであり、役に立ちません。
すべてをバイナリデータとして読み取り、関連する部分を後でテキストに変換することを考えました。しかし、文字データの長さ情報はバイト単位ではなく、文字単位しかありません。したがって、エンコーディングを認識するために、ストリームから文字を読み取るものが必要です。
指定された文字数を読み取るために必要な以上に先読みしないように InputStreamReader に指示する方法はありますか? または、エンコーディングを使用してバイナリデータとテキストの両方をサポートし、これらのモードをオンザフライで切り替えることができるリーダーはありますか?
java - InputStreamReader(InputStream in, Charset cs) によって返されるテキストの文字セットは何ですか?
次の方法で UTF-8 ファイルを読み取ります。
String
を呼び出した後に返される文字セットは何br.readLine()
ですか?
私のコンピューターの Eclipse は、デフォルトの文字セットとして「GBK」を使用します。
java - ISO-8859-15でInputStreamReaderを取得するにはどうすればよいですか?
この入力ストリームにISO-8859-15でエンコードされたファイルを読み取らせるにはどうすればよいですか?
私は一見うまくいくこの行を見つけました:
だが
ではない。
java - Java の BufferedReader クラスと InputStreamReader クラスの違いは何ですか?
BufferedReader
JavaとInputStreamReader
クラスの違いは何ですか?