怎么在一个目录下生成1000个文件,名字是0001.txt,0002.txt一直到1000.txt,然后讲每30个文件移入
一个子目录,要使用renameTo方法,生成dir001目录,dir002目录
我能生成1000个文件,但是名字怎么才能是000开头呢?30个文件放到一个子目录怎么办,不会,请多指教

解决方案 »

  1.   

    提供一段,作为参考
    try {
    File tempFile=File.createTempFile("0001",".txt",tempPath);
    System.out.println(tempFile.getAbsolutePath());
    }catch(IOException e1){
    System.out.println(e1);
    }
      

  2.   


    int i = 1;

    DecimalFormat numFmt = new DecimalFormat("0000");

    System.out.println(numFmt.format(i));
      

  3.   

    我分别写了三个方法,楼主可以分别执行一下看看
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;public class FileCreator {

    private NumberFormat nf1=new DecimalFormat("0000");
    //数字的格式化,保持4位的输出,前几位如果没有则补零
    private NumberFormat nf2=new DecimalFormat("000");
    /**
     * 在指定目录下创建1000个文本文件
     */
    private void createFile(File dir){

    if(dir.isDirectory()){//如果是目录
    for(int i=1;i<=1000;i++){
    //这里注意处理一下字符串
    String newFilePath=dir.getAbsolutePath()+"\\"
    +nf1.format(i)+".txt";
    System.out.println(newFilePath);
    try {
    FileOutputStream fos=new FileOutputStream(newFilePath);
    try {
    fos.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }

    }

    private void createFolder(File dir){
    if(!dir.isDirectory())
    return ;

    //首先创建需要的目录 1000/30=33个目录
    for(int i=1;i<=34;i++){
    String newFolderPath=dir.getAbsolutePath()+"\\"+
    "dir"+nf2.format(i);
    File file=new File(newFolderPath);
    if(!file.exists()&&!file.isDirectory()){
    file.mkdir();
    }
    }

    } private void removeFiles(File dir) {
    for (int i = 1; i <34; i++) {// 每30个文件放入一个新目录
    String folderPath=dir.getAbsolutePath()+"\\"+
    "dir"+nf2.format(i);
    // System.out.println(folderPath);
    File folder=new File(folderPath);

    for(int j=((i-1)*30+1);j<=(i*30);j++){ String filePath=dir.getAbsolutePath()+"\\"
    +nf1.format(j)+".txt";
    System.out.println(filePath);
    File file=new File(filePath);

    File newFile=new File(folder.getAbsoluteFile()+"\\"+
    nf1.format(j)+".txt");
    System.out.println(file.renameTo(newFile));
    }


    }

    for (int j = 991; j <= 1000; j++) {
    String folderPath = dir.getAbsolutePath() + "\\" + "dir"
    + nf2.format(34);
    File folder = new File(folderPath);
    String filePath = dir.getAbsolutePath() + "\\" + nf1.format(j)
    + ".txt";
    System.out.println(filePath);
    File file = new File(filePath); File newFile = new File(folder.getAbsoluteFile() + "\\"
    + nf1.format(j) + ".txt");
    System.out.println(file.renameTo(newFile)); }
    }

    private void createNum(){
    for(int i=1;i<=1000;i++){
    System.out.println(nf1.format(i));
    }
    }

    public static void main(String[] args){
    File dir=new File("e:/test");
    FileCreator fc=new FileCreator();
    fc.createFile(dir);
    fc.createFolder(dir);
    fc.removeFiles(dir);
    }
    }