私はファイル転送プログラムを作成していましたが、作成したこの 800kb のテスト画像を送信するのに永遠にかかります。明らかに、1 メガバイトのデータごとに 30 分を費やしたくないので、コードまたは Java 全般を高速化する方法があるかどうか知りたいと思っていました。追加の RAM を割り当てることについては聞いたことがありましたが、調べたことはありませんでした。
誰かが私のコードに適したアルゴリズムを見つけることができれば、それ以外の場合は C++ または C にステップアップして再試行する必要があります。
サーバー コード ブロック:
if(file.exists()){
for(long l=0;l<file.length();l++){
out.writeByte(fIS.read());
}
}
ここで、fIS は FileInputStream であり、out は発信 DataOutputStream です。コードの残りの部分は基本的に長さとフラグを送信していますが、要求があれば追加できます。
クライアントコード:
b = new byte[len];
for(int x=0;x<len;x++){
b[x] = dIS.readByte();
}
fOS.write(b);
ここで、len はサーバーから期待されるファイルの読み取り長さ、b はファイルを構成するバイトの配列、dIS はサーバーからの入力ストリーム、fOS は FileOutputStream です。
また、readChars() および readChar() で Readers および readLine() を使用しようとしましたが、これはほぼ同じことと同等のようです。