Java 用于以递归方式保存文件的文件处理

Java 用于以递归方式保存文件的文件处理,java,iteration,filenames,file-handling,Java,Iteration,Filenames,File Handling,我让我的代码生成了两个包含可重写数据的文件。我需要一个代码来继续生成具有递归文件名的文件,并且应该保留所有以前的文件 在下面的代码中,每次我必须更新我的文件时,我必须硬编码并将其复制到一个新文件中 我需要一个递归函数来保存文件,文件以数字顺序命名(升序),同时每次运行代码时都将数据保存在上一个文件中 公共静态void main(字符串[]args)引发IOException { createFileUsingFileClass(); copyFileVersion

我让我的代码生成了两个包含可重写数据的文件。我需要一个代码来继续生成具有递归文件名的文件,并且应该保留所有以前的文件

在下面的代码中,每次我必须更新我的文件时,我必须硬编码并将其复制到一个新文件中

我需要一个递归函数来保存文件,文件以数字顺序命名(升序),同时每次运行代码时都将数据保存在上一个文件中

公共静态void main(字符串[]args)引发IOException {

        createFileUsingFileClass();
        copyFileVersion();
        fileChecker();
        String data_2 = "This is the new data written in your file";
        writeUsingFileWriter(data_2);
        copyFileInCode(data_2);


    }
    private static void createFileUsingFileClass() throws IOException
    {

          File file = new File("C:\\Users\\esunrsa\\Documents\\file.txt");

          //Create the file
          if (file.createNewFile()){
            System.out.println("File is created!");
          }else{
            System.out.println("File already exists.");
          }

          //Write Content
          FileWriter writer = new FileWriter(file);
          String data_1 = " Initial data";
          writer.write(data_1);
          writer.close();
    }


    private static void copyFileVersion() {
          FileInputStream ins = null;
            FileOutputStream outs = null;
            try {
               File infile =new File("C:\\Users\\esunrsa\\Documents\\file.txt");
               File outfile =new File("C:\\Users\\esunrsa\\Documents\\file_01.txt");
               ins = new FileInputStream(infile);
               outs = new FileOutputStream(outfile);
               byte[] buffer = new byte[1024];
               int length;

               while ((length = ins.read(buffer)) > 0) {
                  outs.write(buffer, 0, length);
               } 
               ins.close();
               outs.close();
               System.out.println("File created successfully!!");
            } catch(IOException ioe) {
               ioe.printStackTrace();
    }
    }

    private static void fileChecker() {
         File f = new File("C:\\Users\\esunrsa\\Documents\\sunrita.txt");

          if(f.exists()){
              System.out.println("File existed");
          }else{
              System.out.println("File  doesnt exist");
              System.exit(0); 
              //System.out.println("File not found!");
          }
    }


    private static void writeUsingFileWriter(String data_2) {
        File file = new File("C:\\Users\\esunrsa\\Documents\\file.txt");
        FileWriter fr = null;
        try {
            fr = new FileWriter(file);
            fr.write(data_2);
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            //close resources
            try {
                fr.close();
            } catch (IOException e) {
                e.printStackTrace();
            }

        }
}
    private static void copyFileInCode(String filename) {
        FileInputStream ins = null;
        FileOutputStream outs = null;
        try {
           File infile =new File("C:\\Users\\esunrsa\\Documents\\file.txt");
        File outfile =new File("C:\\Users\\esunrsa\\Documents\\file_02.txt");

           ins = new FileInputStream(infile);
           outs = new FileOutputStream(outfile);
           byte[] buffer = new byte[1024];
           int length;

           while ((length = ins.read(buffer)) > 0) {
              outs.write(buffer, 0, length);
           } 
           ins.close();
           outs.close();
           System.out.println("File created successfully!!");
        } catch(IOException ioe) {
           ioe.printStackTrace();
        } 

    }

}

我不认为你真正的意思是“递归”。但你的问题并不完全清楚。您是否只需要一个方案来不断地生成新的文件名?如果是这样,那么选择一个合理的命名约定。例如,使用公共基名称并附加当前日期或日期和时间。例如
foo201806051020
foo201806051021
等。您可以通过不删除以前的文件来保留它们。请提供一些文件名的示例。@潜伏者我正在寻找一个简单的方法,可以重命名我将以前的数据复制到的所有文件,这就是生成“GNUs not Unix”附加一些随机整数作为文件名,它们都是递归的!不要在注释中添加代码。请编辑您的问题(请参阅问题下方的“编辑”链接),并在此处添加格式正确的代码。这样人们就更容易看到了。