このシナリオを考えてみましょう: 私はファイルを読んでいて、各行を少し調整してから、データを新しいファイルに保存しています。今、私はそれを行うために2つの方法を試しました:
データを文字列に格納し、最後に次のようにターゲット ファイルに書き込みます。
InputStream ips = new FileInputStream(file); InputStreamReader ipsr = new InputStreamReader(ips); BufferedReader br = new BufferedReader(ipsr); PrintWriter desFile = new PrintWriter(targetFilePath); String data = ""; while ((line = br.readLine()) != null) { if (line.contains("_Stop_")) continue; String[] s = line.split(";"); String newLine = s[2]; for (int i = 3; i < s.length; i++) { newLine += "," + s[i]; } data+=newLine+"\n"; } desFile.write(data); desFile.close(); br.close();
以下のように、while ループで PrintWriter の println() メソッドを直接使用します。
while ((line = br.readLine()) != null) { if (line.contains("_Stop_")) continue; String[] s = line.split(";"); String newLine = s[2]; for (int i = 3; i < s.length; i++) { newLine += "," + s[i]; } desFile.println(newLine); } desFile.close(); br.close();
2 番目のプロセスは、1 番目のプロセスよりもはるかに高速です。さて、私の質問は、これら2つのプロセスで何が起こっているのか、実行時間によって大きく異なるのでしょうか?