让我们考虑一下这种情况:我正在读取一个文件,然后稍微调整每一行,然后将数据存储在一个新文件中。现在,我尝试了两种方法来做到这一点:
将数据存储在字符串中,然后在最后将其写入目标文件,如下所示:
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();
第二个过程比第一个快得多。现在,我的问题是,在这两个过程中发生了什么如此不同,以至于执行时间差异如此之大?