import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
/**
测试随机生成前N个不重复的整数
@author Administrator
*/
public class TestRandom {
public static void main(String[] args) {
randomNumber2File("e:/random.txt");
}
/**
根据提供的路径生成相应的随机数
@param path
*/
public static void randomNumber2File(String path){
File file = new File(path);
OutputStream os = null;
try {
os = new BufferedOutputStream(new FileOutputStream(file));
byte[] buf = new byte[20];
for(int j = 0; j < 100; j++){
int[] arr = ranInt(9);
StringBuffer sb = new StringBuffer();
for(int i = 0; i < arr.length; i++){
sb.append(arr[i]);
}
sb.append("\r\n");
buf = sb.toString().getBytes();
os.write(buf);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(null != os){
try {
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
利用随机生成数组的索引实现随机,并通过交换实现不重复
@param n
@return
*/
public static int[] ranInt(int n) {
int[] arr = new int[n];
int i,randomIndex,temp;
for(i = 0; i < n; i++){
arr[i] = i+1;
}
for(i = 1; i < n; i++){
randomIndex = ranIndex(0, i);
//交换当前元素和生成的随机元素
temp = arr[i];
arr[i] = arr[randomIndex];
arr[randomIndex] = temp;
}
return arr;
}
public static int ranIndex(int start, int end){
Random r = new Random();
int result;
result = r.nextInt(end);
return result;
}
} </pre>
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有