Advertisement
Azazavr

Сравнение скорости работы StringBuffer_StringBuilder

Feb 27th, 2015
419
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.Arrays;
  3.  
  4. public class SpeedTest {
  5. static final String FILE_NAME = "test.txt";
  6.     static final int STRINGS = 10000;
  7.     static long st;
  8.     static long en;
  9.  
  10.     public static void main(String[] args) throws IOException{
  11.         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(FILE_NAME, false)));
  12.         for (int i = 0; i < STRINGS; i++) {
  13.             bw.append(i+"Some short string...");
  14.             bw.newLine();
  15.         }
  16.         bw.close();
  17.             //С использованием String
  18.         st = System.currentTimeMillis();
  19.         String str1 = "";
  20.         BufferedReader bf = new BufferedReader(new InputStreamReader(new FileInputStream(FILE_NAME)));
  21.         while (bf.ready()){
  22.             str1 = str1 + bf.readLine();
  23.         }
  24.         bf.close();
  25.         en = System.currentTimeMillis();
  26.         System.out.println("String read elapsed " + (en - st) + "ms");
  27.             //С использованием StringBuilder
  28.         st = System.currentTimeMillis();
  29.         StringBuilder sb = new StringBuilder();
  30.         bf = new BufferedReader(new InputStreamReader(new FileInputStream(FILE_NAME)));
  31.         while (bf.ready()){
  32.             sb.append(bf.readLine());
  33.         }
  34.         bf.close();
  35.         String str2 = sb.toString();
  36.         en = System.currentTimeMillis();
  37.         System.out.println("StringBuilder read elapsed " + (en-st)+ "ms");
  38.  
  39.         //С использованием StringBuffer
  40.         st = System.currentTimeMillis();
  41.         FileInputStream stream = new FileInputStream(FILE_NAME);
  42.         StringBuffer sb1 = new StringBuffer(stream.available());
  43.         bf = new BufferedReader(new InputStreamReader(new FileInputStream(FILE_NAME)));
  44.         while (bf.ready()){
  45.             sb.append(bf.readLine());
  46.         }
  47.         bf.close();
  48.         String str3 = sb1.toString();
  49.         en = System.currentTimeMillis();
  50.         System.out.println("StringBuffer read elapsed " + (en-st)+ "ms");
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement