問題タブ [dataoutputstream]
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 ソケット: DataOutputStream または OutputStream?
私はまだソケットに比較的慣れていないため、この件に関する情報は見たことがありません。
接続されたソケットに書き込むには、次のいずれかを使用できます
DataOutputStream
または、ソケットから新しいものを作成し、OutputStream
それに書き込みます。
- DataOutputStream または OutputStream を使用して、「良い習慣」と見なされるものは何ですか? インターネットで見つけたほとんどの例では、DataOutputStream を使用しています (双方向チャットなどで文字列を送信するため)。
- OutputStream よりも DataOutputStream を使用することの利点または欠点はありますか?
- たとえば、ファイルを送信するときに、これら 2 つの間に顕著なパフォーマンスの違いはありますか?
java - ObjectInputStream / ObjectOutputStreamを使用してJavaでネットワーク「パケット」を実装することの長所と短所は?
私は、すべての通信にソケットを使用する単純なクライアント/サーバーアプリケーションに取り組んでいます。通信はパケットベースであり、パケットの概念は、ソケットストリームのクラスおよびObjectInputStream
/ObjectOutputStream
ラッパーのセットを使用して実装されます。
完全にテキストベースのプロトコル(IRCなど)または明示的にバイトを操作する「非常にバイナリ」なプロトコルと比較した場合、このアプローチに不利な点があるかどうか疑問に思います。
ここではトラフィックの問題(「qwerty」と「qwerty」+ 1KBのメタデータ)を無視し、信頼性と保守性のみを考慮しましょう。
どう思いますか?
java - DataOutputStreamの使用中の奇妙な出力
ファイルに書き込むためにJavaIOのDataOutputStreamを使用していますが、プログラムを実行すると、正しい出力が得られず、代わりに奇妙な文字が表示されます。-writeUTF(String str)メソッドを使用して文字列を書き込むことだけが機能することに気づきましたが、writeBytes(String s)を使用しても、スペース文字と思われる奇妙な文字が生成されます-ファイルへの書き込みのコード部分は以下のとおりです。考えられる原因、おそらくエンコーディングに関連するものですか?前もって感謝します。
java - junitを使用して、テキストおよびバイナリファイルからの読み取りとテキストおよびバイナリファイルへの書き込みをテストします
テキストファイルとバイナリファイルから読み取るコンストラクターと、テキストファイルとバイナリファイルに書き込むメソッドを持つCourseクラスを作成しました。このクラスをテストするためのjunitテストを作成するにはどうすればよいですか?
以下のコードを参照してください。
}
java - JavaでDataOutputStreamを使用してファイルを送信する
ファイルサイズとコンテンツをサーバーに送信するクライアントを構築しようとしています。
DataOutputStream を使用しようとしています。
ファイルを開いてファイルのサイズを取得し、内容を読み取って送信する必要があると想定しています。
しかし、私はJavaが初めてなので、それらを実装する方法がわかりません...
誰でもこれについて私を助けることができますか?
ありがとうございました!
java - DataOutputStream.writeUTF() が先頭に 2 バイトを追加するのはなぜですか?
sax over sockets を使用して xml を解析しようとしたときに、奇妙な現象に遭遇しました。分析すると、DataOutputStream がデータの前に 2 バイトを追加することに気付きました。
DataOutputStream によって送信されるメッセージ:
Transformer を使用したメッセージ送信:
お気づきかもしれませんが、DataOutputStream はメッセージの前に 2 バイトを追加します。したがって、sax パーサーは例外「org.xml.sax.SAXParseException: Content is not allowed in prolog.」をスローします。ただし、これらの 2 バイトをスキップすると、sax パーサーは問題なく動作します。さらに、DataInputStream が Transformer メッセージを読み取れないことに気付きました。
私の質問は: DataOutputStream がこれらのバイトを追加するのはなぜですか? Transformer はなぜ追加しないのですか?
問題を再現することに興味がある人のために、いくつかのコードを次に示します。
DataInputStream を使用するサーバー:
Transformer を使用するサーバー:
SAX パーサーを使用するクライアント:
DataInputStream を使用するクライアント:
java - 15桁を含む7バイトの整数値をDataOutputStreamに書き込むにはどうすればよいですか?
7バイトの整数値をDataOutputStreamに書き込む必要があります。この整数には15桁が含まれています。どうやってやるの?
java - Javaでのテキストファイルへの書き込み
DataOutputStream
とメソッドを使用して文字列をテキストファイルに書き込むメソッドがあります.writeBytes(String)
。たとえば、改行文字を使用して文字列を記述した場合"I need \n help!"
、メモ帳やその他の基本的なテキストエディタに改行が表示されません。ただし、ワードパッド、MS Wordなどには表示されます。これはなぜですか?修正できますか?
file - FileConnection エンコーディングからの J2ME DataOutputStream
FileConnection から DataOutputStream にデータを書き込もうとしています。
しかし、入力したテキストではなく、エンコーディングに問題があるように、ファイルにゴミが含まれています。
OK、私が見る限り、ファイルの先頭に null と 0xFF 記号が追加されています。
原因は何ですか?