問題タブ [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.
java - JavaでRTL文字を含むBufferedInputStreamを使用してテキストファイルを行ごとに解析して配列にする
みんな私は何かを理解する必要があります: \n は改行の先頭にありますか? その場合、RTL 文字を含むファイルを解析しようとしていて、それらは行の先頭にあるため、次のようになります。
- xxx xxxx、ABC DEFG、1、11、111、786
- xxx xxxx、ABC DEFG、1、11、111、786
- 等...
txt ファイル (資産からのアンドロイド) を解析するとき、前の行の整数に連結された次の行の最初の単語を取得し続けます。私はすべてを試しましたが、運がありません。
コード スニペットを次に示します。
私が達成しようとしているのはこれです:
テキストファイルを非常に高速に1行ずつ解析して、DBに挿入される配列に...
何か案は???
私は何日もそれを続けてきたので、助けは大歓迎です(髪を失います:-()...
現在、私は InputStreamReader で動作するコードを持っていますが、非常に遅いです!!!!!
ありがとうございました。
ジェイドイェ。
java - Java がウイルス対策ソフトウェア (具体的には AVG) によってブロックされている
ファイルをダウンロードするプログラムに取り組んでいます。ユーザーが AVG を使用していない限り、すべてが完全に機能します。奇妙なことに、この問題を解決するには、AVG の「メール保護」を無効にする必要があるようです。プログラムまたは JRE を例外リストに追加しても機能しません。
URL から取得した BufferedInputStream を使用してコンテンツをダウンロードしています。ユーザーは、ダウンロード プロセスは正常に開始されるが、~5% ~ 15% でフリーズすると報告しています (状況によって異なります)。ダウンロードの進行状況は、JProgressBar で表示されます。
これを回避する方法はありますか?ケースバイケースで対応するのが面倒くさい…
java - Javaで再生中にmp3ファイルをディスクに書き込む
JLayer/BasicPlayer ライブラリを使用して HTTP 経由でリモート MP3 ファイルを再生するアプリケーションがあります。再生した mp3 ファイルを再ダウンロードせずにディスクに保存したい。
これは、MP3 ファイルを再生するために JLayer ベースの BasicPlayer を使用するコードです。
mp3 ファイルをディスクに保存するにはどうすればよいですか?
java - Java BufferedInputStream.read() IndexOutOfBounds
ファイルの一部をバイト配列に読み込むメソッドをコーディングしたいと考えています。このために、私は fileinputstream とバッファリングされた入力ストリームを使用しています。
このような:
メソッド名「OpenFile(String File)」を呼び出して、これを 1 回だけ行います。このメソッドでファイルが開かれたら、「ReadParts(byte[] buffer, int offset, int len)」という関数で操作を試みます。
行 dis.read() は、最初のステップの後に常に indexOutOfBounds エラーメッセージをスローしますが、その理由と内容がわかりません。インデックスの問題が見つからないため、netbeansデバッガーを使用しても役に立ちませんでした.....
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
?
java - BufferedReaderとBufferedInputStreamのパフォーマンス測定
最近、コードを次のように変更しました
- STDINから入力を取りながら、からに移動し
Scanner
ましたBufferedInputStream
。 BufferedReader
また、どのがからの入力を受け取るかについても読みましたInputStreamReader
。これは、入力を取得するためInputStreamReader
に使用できます。System.in
STDIN
BufferedInputStream
read()
目的に応じてさらに解析する必要があるメソッドがあります。
私の場合、最初に整数(たとえばn)を入力として受け取る必要があります。STDIN
その後、afor loop
はn個の文字列を入力として受け取ります。これらの文字列の最大文字数は100,000文字です。
質問は次のとおりです。そのうちのどれがScanner
、私の目的に対してより良いパフォーマンスを発揮しますかBufferedInputStream
?BufferedReader
java - ftp 経由でデータベースを送信する - 別のファイルを取得する
現在、このコードを使用してftp経由でデータベースを送信しています(apache commonsを使用)
テキストファイルを送信するために使用しましたが、動作します。ただし、データベースで試してみたところ、同じサイズのファイルがサーバーに配置されましたが、SQLite ブラウザーで開いても何も表示されません。非常に小さなデータベースで動作しますが、データベースが大きくなるとすぐにこの問題が発生します。
バッファサイズと関係があるのではないかと思っていましたか? なぜこれが起こっているのか、誰かが光を当てることができますか?
ありがとう
java - 入力ストリームのバッファをバッファで削除するには?
AudioInputStream (ieavailable() return >=0) などのバッファ付きの InputStream を考えてみましょう。入力ストリームは変化するファイル (インターネットからダウンロードされ続け、ダウンロードされていない部分がゼロでパックされているファイル) を読み込んでいます。
- ダウンロードされていない部分まで読み込むと、wait()が呼び出されます
- パーツがダウンロードされると、notify() が呼び出されます
ただし、ウェイクアップしたときに、バッファー (役に立たないゼロ) を確実にドロップし、ファイルを再度読み取るにはどうすればよいですか?
少し早いですがお礼を
java - BufferedInputStreamをbyte[]に入れて、ソケットを介してデータベースに送信します
私はこれに対する答えを探していましたが、実際には何も見つかりませんでした。今日の初めに、バイト配列を使用してファイルを文字列に変換し、後で取得するために再度戻す方法を尋ねました。
人々が私に言ったことは、厄介なエンコーディングの問題を避けるために、バイト配列を格納するだけでよいということでした。だから今、私はそれに取り組み始めました、しかし私は今壁にぶつかりました。
基本的に、以前はバッファなしのストリームを使用して、ファイルをバイト配列に変換していました。これは理論的にはうまく機能しますが、多くのメモリを消費し、最終的にヒープサイズの例外が発生します。代わりにバッファリングされたストリームを使用する必要があります(またはそう言われています)。現在の問題は、BufferedInputStreamからbyte[]に移行することです。このドキュメントにある方法をコピーして使用しようとしました
バッファリングされていないストリームをバッファリングされたストリームと交換する場所。唯一の問題は、バッファリングされていないストリームの場合のように、バッファリングされた出力ストリームをバイト配列に直接変換できないことです。
ヘルプ?:)
編集:
まだヒープスペースエラーが発生しています。だから私は今すべてのコードを投稿します:
main.java
BufferedByteStream.java
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 のケースですか?
例を含むアイデアは非常に役立ちます。