Обработка файлов, используемая для рекурсивного сохранения файлов - PullRequest
0 голосов
/ 05 июня 2018

У меня есть код, генерирующий два файла с перезаписываемыми данными.Мне нужен код, который продолжает генерировать файлы с рекурсивными именами файлов и должен также сохранять все предыдущие файлы .

В приведенном ниже коде каждый раз, когда у меня естьчтобы обновить мой файл, я должен жестко закодировать его и скопировать в новый файл.

Мне нужна рекурсивная функция, которая сохраняет файл с числовым именем в порядке (по возрастанию), сохраняя при этом данные в моем предыдущем файле, каждый раз, когда я запускаю код.

public staticvoid main (String [] 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();
        } 

    }

}

...