第1个回答 2013-07-12
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* 2013-7-12
* @author <a href="mailto:yupeiwendy@163.com">yupeiwen</a>
*
*/
public class RandomCopy {
public static void main(String[] args) throws IOException {
//取得F:/txt下所有文件
File txtFolder = new File("F:/txt");
File[] txt = txtFolder.listFiles();
//验证是否是100个
if(txt.length!=100){
System.out.println("F:/txt文件夹下的txt文件数量不是100个");
return;
}
File newtxtFolder = new File("D:/txt");
if(!newtxtFolder.exists())
newtxtFolder.mkdir();
//取得随机10个
List<Integer> li = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
Integer j = (int)(Math.random()*100);
while(li.contains(j)){
j = (int)(Math.random()*100);
}
li.add(j);
}
Iterator<Integer> iterator = li.iterator();
int n = 1;
while(iterator.hasNext()){
File newtxt = new File(newtxtFolder.getAbsolutePath()+"\\"+n+".txt");
int x = iterator.next().intValue();
FileInputStream inputStream = new FileInputStream(txt[x]);
BufferedInputStream in = new BufferedInputStream(inputStream);
FileOutputStream outputStream = new FileOutputStream(newtxt);
BufferedOutputStream out = new BufferedOutputStream(outputStream);
int y;
while((y=in.read())!=-1){
out.write(y);
}
in.close();
out.close();
n++;
}
}