[color=red]原题:
从a-z,A-Z,0-9这62个字符中,随机选取字符填充一个100M的文件。
就是说,让这100M大的文件,里面都是无规律的字符。
开发使用的技术不限,只要求程序运行的尽可能的快。[/color]
我做的:
package javatest;
import java.io.*;
import java.util.Random;
public class javatest {
public static void main(String[] args) {
String str1="1234567890";
StringBuffer strbuf1=new StringBuffer();
StringBuffer strbuf2=new StringBuffer();
String str2,str3,str;
for(int i=65;i<=90;i++){
strbuf1.append((char)i);
}
str2=strbuf1.toString();
for(int i=97;i<=122;i++){
strbuf2.append((char)i);
}
str3=strbuf2.toString();
str=str1+str2+str3;
Random rd=new Random();
StringBuffer strbud=new StringBuffer();
try{
FileWriter fw=new FileWriter("d:\\output.txt",true);
for(int j=0;j<100;j++){
for(int i=0;i<1024*1024;i++){
strbud.append(str.charAt(rd.nextInt(str.length())));
}
fw.write(strbud.toString());
strbud.delete(0, strbud.length()-1);
}
fw.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
[color=red][size=xx-large][u][b]但是不够快,用什么方法让这个程序生成的更快些, 帮帮我吧,谢谢重新写一个也行,多谢各位[/b][/u][/size][/color]
用BufferedWriter封装下FileWriter
FileWriter fw=new FileWriter("d:\output.txt",true);
BufferedWriter fw=new BufferedWriter(new FileWriter("d:\output.txt",true),1024*1024);
for(int j=0;j<100;j++){
for(int i=0;i<1024*1024;i++){
strbud.append(str.charAt(rd.nextInt(str.length())));
}
fw.write(strbud.toString());
strbud.delete(0, strbud.length()-1);