問題タブ [io]
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で複数のストリームを処理するにはどうすればよいですか?
プロセスを実行して、その入力、出力、およびエラーストリームを処理しようとしています。これを行うための明白な方法は、のようなものを使用することですが、それをselect()
行うJavaで私が見つけることができる唯一のものはSelector.select()
、を取りますChannel
。またはChannel
からを取得することはできないようです(メソッドは ありますが、ここでは役に立ちません)InputStream
OutputStream
FileStream
getChannel()
そこで、代わりに、すべてのストリームをポーリングするコードを作成しました。
終了しないことを除いて、これは機能します。ストリームの1つがファイルの終わりに達すると、available()
ゼロを返すためread()
、呼び出されず、EOFを示す-1の戻り値を取得することはありません。
1つの解決策は、EOFを検出するための非ブロッキング方法です。ドキュメントのどこにも表示されません。あるいは、私がやりたいことをするためのより良い方法はありますか?
私はここにこの質問を見ます: リンクテキスト とそれは私が望むものを正確に実行しませんが、私が今抱えている特定の問題のために、ストリームごとに別々のスレッドを生成するというそのアイデアをおそらく使用できます。しかし、確かにそれがそれを行う唯一の方法ではありませんか?確かに、それぞれにスレッドを使用せずに複数のストリームから読み取る方法が必要ですか?
java - CharBufferの「配管」がハングするのはなぜですか?
次のメソッドがハングするのはなぜですか?
java - 「パイピング」の Java イディオム
Java で入力を出力に「パイプ」するための、次よりも簡潔で標準的なイディオム (JDK メソッドなど) はありますか?
Reader
[編集]とWriter
が与えられていることに注意してください。正解は、パイプを取得in
して形成する方法を示します (できれば、1 つまたは 2 つのメソッド呼び出しで)。とがとであるout
場合の回答を受け入れます(できれば/から / への変換を伴う)。orが/または/のサブクラスである場合の回答は受け付けません。in
out
InputStream
OutputStream
Reader
Writer
in
out
Reader
InputStream
Writer
OutputStrem
java - 同じだが変更されたオブジェクトを ObjectOutputStream 経由で送信する
私の側のバグまたは誤解を示す次のコードがあります。
同じリストを送信しましたが、ObjectOutputStream を変更しました。1 回は [0]、それ以外は [1] です。しかし、読んでみると [0] が 2 回出てしまいます。これは、同じオブジェクトを送信していて、ObjectOutputStream が何らかの方法でそれらをキャッシュしている必要があるという事実が原因だと思います。
これは正常に機能しますか、それともバグを報告する必要がありますか?
c# - C# 他のバッチ ファイルの出力を取得するにはどうすればよいですか?
他のアプリケーション (コンソール) を使用してこのプログラムにパラメーターを渡し、C# プログラム内でそのプログラムの出力を取得する必要があります。コンソールを表示したくありません (すべてユーザーには表示されません)。どうやってやるの?
java - 文字列メソッド引数でJavaのio操作を同期しますか?
基本的に、オブジェクトを XML ファイルにシリアル化するメソッドと、XML からオブジェクトを読み取るメソッドの 2 つのメソッドを持つクラスがあります。オブジェクトを復元するメソッドの同期部分の例を次に示します。
オブジェクトをシリアライズするときも、同様のアプローチが取られます。ここで、単体テストを作成すると、各スレッドがブール値または文字列をシリアル化して即座に読み取ろうとする 10 個のスレッドが作成され、ClassCastExceptions が発生したことを示して失敗します。これは、シリアル化が間違っていると思います (シングルスレッド環境ではすべて問題ありません)。この時点まで私と一緒にいてくれた場合:)、ここにあなたの助けが必要な2つの問題があります:
- メソッドに渡された文字列引数を同期することは理にかなっていますか (Java に文字列プールがあることを考慮して)? ところで、XMLSerializer クラス自体で同期を試みましたが、結果は同じままでした。
- 単一のファイルで io 操作を正しく同期するにはどうすればよいですか?
c# - .Net でメモリにマップされた I/O ポートから読み取る方法は?
.Net の標準ポインタはこれを行うことができますか? それとも、P/invoke に頼る必要がありますか?
オブジェクト参照について話しているのではないことに注意してください。アンセーフ コード内の実際の C# ポインターについて話しています。
c# - ファイルからの読み取りが十分に高速ではありません。どうすれば高速化できますか?
これは私がファイルを読む方法です:
問題は長すぎることです (.txt ファイルは約 2.5 MB です)。5分以上かかりました。より良い方法はありますか?
取った解決策
1秒もかかりませんでした... :)
c# - C#:コンソールで文字がうまく表示されないのはなぜですか?
下の写真はすべてを説明しています:
代替テキストhttp://img133.imageshack.us/img133/4206/accentar9.png
変数textInputはから来てFile.ReadAllText(path);
おり、:'éè...のような文字は表示されません。UnitTestを実行すると、すべて問題ありません。見えます…なんで?
file - Haskell: ファイルからすべての行をリストに挿入する
私は現在、Haskell を使用したプロジェクトに取り組んでおり、問題が発生しました。「dictionary.txt」ファイルの各行を読み取ってリストに挿入することになっていますが、そうすることができないようです。私はこのコードを持っています:
すべての行を取得することになっています(「inpStr:list」を「putStrLn inpStr」に置き換えると、すべての行が正しく表示され、すべての行が表示されるため、すべての行が取得されることがわかっています)、リストに挿入しますが、次のエラーが発生します:
おそらく、hGetLine が文字列ではなく、リストに挿入できる適切な文字列を取得するために処理する方法がわからない IO 文字列であるためです。これをどのように解決できるか、または問題が正確に何であるかはわかりませんが、ファイル内のすべての行を適切にリストに入れる方法を知っている人がいれば、感謝します。
前もって感謝します!