IFS からローカル ドライブにファイルをコピーするこのコードがあります。そして、どうすればより良くなるかについて、いくつかの提案をしたいと思います。
public void CopyFile(AS400 system, String source, String destination){
File destFile = new File(destination);
IFSFile sourceFile = new IFSFile(system, source);
if (!destFile.exists()){
try {
destFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
IFSFileInputStream in = null;
OutputStream out = null;
try {
in = new IFSFileInputStream(sourceFile);
out = new FileOutputStream(destFile);
// Transfer bytes from in to out
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
} catch (AS400SecurityException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(in != null) {
in.close();
}
if(out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
} // end try catch finally
} // end method
どこ
- ソース = 完全な IFS パス + ファイル名および
- 宛先 = 完全なローカル パス + ファイル名
以下の点についてお聞きしたいです。
を。パフォーマンスに関する考慮事項
- これは、ホスト AS400 システムの CPU 使用率に大きな影響を与えますか?
- これは、使用されるJVMに大きな影響を与えますか(メモリ使用量の観点から)
- これをWebアプリに含めると、アプリサーバーのパフォーマンスに影響しますか(重いタスクになるかどうか)?
- これを使用して複数のファイルをコピーする (冗長に実行する) ことは、関連するすべてのリソースにとって大きな負担になりますか?
b. コード品質
- 私の IFSFileInputStream の実装で十分でしたか、それとも単純な FileInputStream オブジェクトで十分でしたか?
私の知る限り、参照されているソース ファイルが IFS のファイルであることを確認するために AS400 オブジェクトが必要でした。
私は AS400 と IFS の初心者です。経験者の率直な意見をお聞きしたいと思います。