25
回答
java如何更快生成00000000~99999999的8位数字保存到文件中?
滴滴云服务器,限时包月0.9元,为开发者而生>>>   

想生成一个8位数字,但是感觉好慢,计算了一下差不多得用2.5个小时左右。有没有更快的方法呢?最好写出代码解释下。以下是我的代码,还请大神指点优化一下。

public class Main {
	public static void main(String[] args) {
		// 生成8位数密码
		Generator.gen8Num();
	}
}

生成数字并写入文件

/**
	 * 8位数字密码生成器
	 * 
	 * @param strs
	 */
	public static void gen8Num() {
		AtomicLong atomicLong = new AtomicLong(-1);
		for (int i = 0; i < 1000000000; i++) {
			Long atLong = atomicLong.incrementAndGet();
			FileOperationUtil.bufferedWriteTest(filePath_8Num, String.format("%08d", atLong));
		}
	}

写入文件

public static void bufferedWriteTest(String filePath, String str) {
		File f = new File(filePath);
		OutputStreamWriter writer = null;
		BufferedWriter bw = null;
		try {
			OutputStream os = new FileOutputStream(f, true);
			writer = new OutputStreamWriter(os);
			bw = new BufferedWriter(writer);
			System.out.println(str);
			bw.write(str + "\n");
			bw.flush();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				bw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

 

举报
双人鱼XKQ
发帖于6天前 25回/815阅
顶部