問題タブ [readblock]
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.
c# - StreamReader ReadBlock がバイナリ ファイルでハングする
ファイルのアップロードを含むブラウザからの POST を受け入れる小さなクラスがあります。私は StreamReader を使用してそれを読み取ります。ヘッダーを読み取り、本文に到達したら、コンテンツの長さを取得し、そのサイズの配列を作成してから、次のようstream.ReadBlock()
にします。
これを実行してテキスト ファイルを POST すると、正常に動作します。ただし、ZIP ファイルと MP3 ファイルの両方を試しましたが、どちらも機能しません。stream.ReadBlock()
通話中にハングアップするだけです。
Mono 2.6.7を搭載したUbuntu 10.04でこれを最初に試しました(私のMonoDevelopプロジェクトは.net 3.5を使用するように設定されています)。そして、VisualStudio 2010 と .net 3.5 で同じプロジェクトを実行して、Windows7 でも同じことが起こることを確認しました。Firefox と Chrome の両方から投稿してみました。
なぜこれが起こるのか、誰にも手がかりがありますか?ありがとう。
また、StreamReader の代わりに BinaryReader を使用してみました。
しかし、今何があってもその通話にハングアップしてしまいます。StreamReader を使用して POST のヘッダーを読み取り、次に BinaryReader を使用して本文を読み取るためですか?
c# - StreamReader.ReadBlock()をいつ使用するのですか?
Read(char []、int、int)が要求されたすべての文字を返すのに失敗し、ReadBlock()が期待どおりにすべての文字を返す状況を知りたいです(たとえば、StreamReaderがFileStreamオブジェクトのインスタンスで動作する場合)。
c# - C#でReadBlockメソッドを使用しているときに、ファイルの最後に到達したことを確認するにはどうすればよいですか?
同じ読み取り文字が何度も返されることに気づきましたが、もっとエレガントな方法があるのではないかと思いました。
java - ページサイズのみのファイルからレコードを読み取る
私は初心者で、可変サイズのレコードを持つファイルを持っています。行ごとに 2 つのフィールドがあります。つまり、1 つは 7 ~ 15 桁のキーで、その後にスペースが続き、レコードごとに可変サイズの文字列があります。
ページサイズのバイトのみをバッファに読み込んで処理しようとしています。
問題は、Java.RanomAccessFile を使用し、seek メソッドを使用して特定の行に到達する場合、ReadFully メソッドを使用してそれらの 1024 バイトをバッファーに読み込むことです。バイトを int に変換し、バイトを文字列に変換する関数を作成しましたが、問題は、その 7 ~ 15 桁を形成するバイト数と、文字列を形成するバイト数がわからないことです。
c# - 1 つの Byte[] を単一の配列に結合する
一連の数値を含むバイト配列があります...
残りではなく、ブロックします。
ブロック 4 ~ 8 をすべて含めるにはどうすればよいですTemp[]
か??
c# - streamReader.ReadBlock (バッファ) を使用したファイルのインポート
多数のテキスト ファイルをインポートし、特に私の問題について調査資料を見つける必要があったため、ここに解決策を投稿することにしました。私はそれが他の誰かを助けると信じています。
私のファイルは 3,000,000 アップのレジストリです。StreamReader.ReadLine()を使用して 1 行ずつ読み取ろうとしましたが、実用的ではありませんでした。さらに、ファイルが大きすぎてメモリにロードできません。
解決策は、 streamReader.ReadBlock()を使用してメモリ内のファイルをブロック (バッファ) でロードすることでした。
私が抱えていた難しさは、ReadBlock()がバイトごとに読み取り、連続して発生するか、別の半分を取得することでした。次に、最初の行の次のバッファが不完全でした。修正するには、文字列( resto ) を読み込み、次のバッファーの 1 行目 ( primeiraLinha )と連結します。
Splitを使用する際のもう 1 つの重要な詳細は、ほとんどの例で、変数の最初の検証がTrim()に従ってスペースを削除することです。今回は1行目と2行目のバッファを結合したので使用しません。
この問題の解決には、友人のトレーニングである Gabriel Gustaf から大きな助けがありました。
パフォーマンスをさらに改善するための提案やコメントがあれば、お気軽に。
streamreader - readblock streamreader を使用して読み取り中の ArgumentException
特定の文字の存在に基づいて大きなファイルから行数を計算しようとしていますが、StreamReader と ReadBlock を使用したいと考えています。以下は私のコードです。
しかし、私はエラーが発生します
オフセットと長さが配列の範囲外であるか、カウントがインデックスからソース コレクションの末尾までの要素数を超えています。
何が悪いのかわかりません...助けてもらえますか。ありがとうございます!
c - クライアントからサーバー プログラムへの I/O 通信の読み取りと書き込み
そのため、ポートとクライアント/サーバー通信のアイデアをいじっています。
ポートを開き、リッスン記述子を開き、接続を受信すると、子を分岐して接続クライアントとの通信を処理できる server.c プログラムがあります。5 つのコマンドライン引数を受け取る client.c プログラムがあります。基本的に、最初の 3 つの引数はサーバーに送信する練習用の文字列で、4 番目はホスト名、5 番目はポート番号です。
これまでのところ、これら 2 つの接続は正常に機能していますが、クライアントが 3 つの異なる文字列 (argv[1]、argv[2]、および argv[3]) を server.c に書き込もうとすると、server.c は最初のものを読み取ることができた場合、クライアントがすべての文字列を通信ファイル記述子に書き終えても、スタックして追加の読み取りを続行できないようです。サーバーとクライアントをよりよく学習するための簡単な練習プログラムを見つけようとして、4 時間以上立ち往生しました。私はもう迷子になりたくないので、誰かがこの問題の処理方法や私が間違っていることについてアドバイスをくれることを願っています.
Client.c
サーバー.c