java怎么截取后8位数字_java如何更快生成00000000~99999999的8位数字保存到文件中?...
你的代碼之所以會這么慢主要因為兩個半半點:
1:你循環多少次就打開多少次文件。
2:你用了
String.format("%08d", atLong)
你應該先轉換成String再用substring來整理....
另外半點:你循環多了個0...并且還循環System.out.println()?????
現在我將你的代碼重新整理如下,生成的速度也是正常的十秒,十秒,十秒...
public class Main {
public static void main(String[] args) throws Exception {
long t = System.currentTimeMillis();
FileOperationUtil.bufferedWriteTest();
System.out.println((System.currentTimeMillis() - t) + "ms");
}
}
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.atomic.AtomicLong;
public class FileOperationUtil {
public static void bufferedWriteTest() {
File f = new File("D://你的文件的名字.txt");
OutputStreamWriter writer = null;
BufferedWriter bw = null;
try {
OutputStream os = new FileOutputStream(f, true);
writer = new OutputStreamWriter(os);
bw = new BufferedWriter(writer);
AtomicLong atomicLong = new AtomicLong(-1);
Long atLong = null;
String str;
for (Integer i = 0; i < 100000000 ; i++) {
str = i.toString();
str = "00000000".substring(0, "00000000".length() - str.length()) + str + "\n";
bw.write(str);
}
bw.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
substring的方法是借鑒了一樓的,一樓的寫法是JDK1.8后的新穎寫法,但是那么寫用了十秒,而與樓主你一對比,就顯得是新版本的代碼能有效率的多,其實不是這樣的,而是樓主的代碼有一部分的問題導致了慢...只要修改下代碼就可以與一樓的代碼效率一致了。。。
最后想說的是:把分給我吧!!!
總結
以上是生活随笔為你收集整理的java怎么截取后8位数字_java如何更快生成00000000~99999999的8位数字保存到文件中?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票盘中剧烈震荡什么原因?
- 下一篇: 暴雪高级 UI 设计师 Scott He