問題タブ [bufferedinputstream]

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.

0 投票する
1 に答える
3298 参照

java - JavaでRTL文字を含むBufferedInputStreamを使用してテキストファイルを行ごとに解析して配列にする

みんな私は何かを理解する必要があります: \n は改行の先頭にありますか? その場合、RTL 文字を含むファイルを解析しようとしていて、それらは行の先頭にあるため、次のようになります。

  1. xxx xxxx、ABC DEFG、1、11、111、786
  2. xxx xxxx、ABC DEFG、1、11、111、786
  3. 等...

txt ファイル (資産からのアンドロイド) を解析するとき、前の行の整数に連結された次の行の最初の単語を取得し続けます。私はすべてを試しましたが、運がありません。

コード スニペットを次に示します。

私が達成しようとしているのはこれです:

テキストファイルを非常に高速に1行ずつ解析して、DBに挿入される配列に...

何か案は???

私は何日もそれを続けてきたので、助けは大歓迎です(髪を失います:-()...

現在、私は InputStreamReader で動作するコードを持っていますが、非常に遅いです!!!!!

ありがとうございました。

ジェイドイェ。

0 投票する
3 に答える
11946 参照

java - Java がウイルス対策ソフトウェア (具体的には AVG) によってブロックされている

ファイルをダウンロードするプログラムに取り組んでいます。ユーザーが AVG を使用していない限り、すべてが完全に機能します。奇妙なことに、この問題を解決するには、AVG の「メール保護」を無効にする必要があるようです。プログラムまたは JRE を例外リストに追加しても機能しません。

URL から取得した BufferedInputStream を使用してコンテンツをダウンロードしています。ユーザーは、ダウンロード プロセスは正常に開始されるが、~5% ~ 15% でフリーズすると報告しています (状況によって異なります)。ダウンロードの進行状況は、JProgressBar で表示されます。

これを回避する方法はありますか?ケースバイケースで対応するのが面倒くさい…

0 投票する
4 に答える
2444 参照

java - Javaで再生中にmp3ファイルをディスクに書き込む

JLayer/BasicPlayer ライブラリを使用して HTTP 経由でリモート MP3 ファイルを再生するアプリケーションがあります。再生した mp3 ファイルを再ダウンロードせずにディスクに保存したい。

これは、MP3 ファイルを再生するために JLayer ベースの BasicPlayer を使用するコードです。

mp3 ファイルをディスクに保存するにはどうすればよいですか?

0 投票する
4 に答える
4606 参照

java - Java BufferedInputStream.read() IndexOutOfBounds

ファイルの一部をバイト配列に読み込むメソッドをコーディングしたいと考えています。このために、私は fileinputstream とバッファリングされた入力ストリームを使用しています。

このような:

メソッド名「OpenFile(String File)」を呼び出して、これを 1 回だけ行います。このメソッドでファイルが開かれたら、「ReadParts(byte[] buffer, int offset, int len)」という関数で操作を試みます。

行 dis.read() は、最初のステップの後に常に indexOutOfBounds エラーメッセージをスローしますが、その理由と内容がわかりません。インデックスの問題が見つからないため、netbeansデバッガーを使用しても役に立ちませんでした.....

0 投票する
2 に答える
1070 参照

java - Scanner の代わりに BufferedInputStream を使用しているときに問題に直面する

STDIN私からの入力を読み取るために、常にScannerオブジェクトを使用しました。最近、BufferedInputStream が入力を読み取る最速の方法であるとBufferedInputStream ここで読みました。Scannerはさまざまな方法があります ( to read integer nextInt()、 to read byte nextByte()、 to readstring next()など)。現在、いくつかの文字列 (最大 100000 文字) といくつかの整数を読み取っています。これらの整数によると、 から入力を受け取る for ループをさらに実行しますSTDIN。以下は、私が今まで使用しているコードスニペットです-

However with BufferedInputStream we have only read() to read input. So how can i differentiate among the inputs? Can somebody please write down the BufferedInputStream code equivalent to the above Scanner ? Should i use StringTokenizer class to tokenize to data which i am getting from read() ? Will this not make the whole stuff (reading input from the STDIN) more slower than Scanner?

0 投票する
2 に答える
3127 参照

java - BufferedReaderとBufferedInputStreamのパフォーマンス測定

最近、コードを次のように変更しました

  • STDINから入力を取りながら、からに移動しScannerましたBufferedInputStream
  • BufferedReaderまた、どのがからの入力を受け取るかについても読みましたInputStreamReader。これは、入力を取得するためInputStreamReaderに使用できます。System.inSTDIN
  • BufferedInputStreamread()目的に応じてさらに解析する必要があるメソッドがあります。

私の場合、最初に整数(たとえばn)を入力として受け取る必要があります。STDINその後、afor loopはn個の文字列を入力として受け取ります。これらの文字列の最大文字数は100,000文字です。

質問は次のとおりです。そのうちのどれがScanner、私の目的に対してより良いパフォーマンスを発揮しますかBufferedInputStreamBufferedReader

0 投票する
2 に答える
443 参照

java - ftp 経由でデータベースを送信する - 別のファイルを取得する

現在、このコードを使用してftp経由でデータベースを送信しています(apache commonsを使用)

テキストファイルを送信するために使用しましたが、動作します。ただし、データベースで試してみたところ、同じサイズのファイルがサーバーに配置されましたが、SQLite ブラウザーで開いても何も表示されません。非常に小さなデータベースで動作しますが、データベースが大きくなるとすぐにこの問題が発生します。

バッファサイズと関係があるのではないかと思っていましたか? なぜこれが起こっているのか、誰かが光を当てることができますか?

ありがとう

0 投票する
1 に答える
152 参照

java - 入力ストリームのバッファをバッファで削除するには?

AudioInputStream (ieavailable() return >=0) などのバッファ付きの InputStream を考えてみましょう。入力ストリームは変化するファイル (インターネットからダウンロードされ続け、ダウンロードされていない部分がゼロでパックされているファイル) を読み込んでいます。

  • ダウンロードされていない部分まで読み込むと、wait()が呼び出されます
  • パーツがダウンロードされると、notify() が呼び出されます

ただし、ウェイクアップしたときに、バッファー (役に立たないゼロ) を確実にドロップし、ファイルを再度読み取るにはどうすればよいですか?

少し早いですがお礼を

0 投票する
2 に答える
31036 参照

java - BufferedInputStreamをbyte[]に入れて、ソケットを介してデータベースに送信します

私はこれに対する答えを探していましたが、実際には何も見つかりませんでした。今日の初めに、バイト配列を使用してファイルを文字列に変換し、後で取得するために再度戻す方法を尋ねました。

人々が私に言ったことは、厄介なエンコーディングの問題を避けるために、バイト配列を格納するだけでよいということでした。だから今、私はそれに取り組み始めました、しかし私は今壁にぶつかりました。

基本的に、以前はバッファなしのストリームを使用して、ファイルをバイト配列に変換していました。これは理論的にはうまく機能しますが、多くのメモリを消費し、最終的にヒープサイズの例外が発生します。代わりにバッファリングされたストリームを使用する必要があります(またはそう言われています)。現在の問題は、BufferedInputStreamからbyte[]に移行することです。このドキュメントにある方法をコピーして使用しようとしました

http://docs.guava-libraries.googlecode.com/git/javadoc/index.html?com/google/common/io/package-summary.html

バッファリングされていないストリームをバッファリングされたストリームと交換する場所。唯一の問題は、バッファリングされていないストリームの場合のように、バッファリングされた出力ストリームをバイト配列に直接変換できないことです。

ヘルプ?:)

編集:

まだヒープスペースエラーが発生しています。だから私は今すべてのコードを投稿します:

main.java

BufferedByteStream.java

0 投票する
1 に答える
904 参照

java - RXTX に関する問題 - 受信されるバイト数の誤り

マイクロコントローラーからデータを取得するのに問題があります。私は正確に 2000 バイトのチャンクでデータを転送しており、次の 2k バイトを送信するための新しい呼び出しを行う前に、これらの 2000 バイトを処理するスレッドを作成しました。ほとんどの場合、問題なく動作しますが、何らかの理由で 1 バイトが多すぎたり、1 バイトが少なすぎたりする傾向があり、これはケース #2の間のみです。ケース#1を使用すると、常に問題なく動作しますが、何らかの理由で非常に遅くなります。10 秒で約 2000 バイトを処理していますが、シリアルポートを 115.200 ボーで動作するように設定した場合、これは遅すぎます。

ケース #1 (常に動作しますが、非常に遅い)

ケース #2 (時々スタックしますが、非常に高速です)

着信データを処理し、いくつかの操作を実行する別のワーカー スレッドがあり、同期の問題などではありません。取得するバイト数が 1 バイト多すぎるか、1 バイトから数バイトになるため、バイト数をカウントするスレッドがもう 1 バイトを期待してスタックします。RealTerm (シリアル コンソール プログラム) を使用して同じものを取得しましたが、毎回高速かつ正確に取得できます。BufferedInputStream を追加すると、ケース #2で少しうまくいくように見えましたが、それでも問題が時々発生しました。

私の質問は次のとおりです: available() メソッドは、これらの問題を引き起こすほど信頼できないのですか? それとも、これはシリアル通信または RXTX ライブラリの問題ですか? これを処理するより良い方法はありますか?2000 バイトを取得して処理し、さらに 2000 バイトを要求しています。シリアルポートでデータを受信するのがこれほど遅いのは、#1 のケースですか?

例を含むアイデアは非常に役立ちます。