package loadreportfile; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.concurrent.TimeUnit; import java.util.zip.GZIPInputStream; import loadreportfile.dao.ReportFileProcessing; public class Main { public static void main(String[] args) throws InterruptedException { String dbUrl = ""; String dbUsr = ""; String dbPass = ""; String dbSchema = ""; String inpFolderPath = ""; long sleep = 5L; BufferedReader br = null; String line = ""; String accNo = ""; String cbsAccNo = ""; String cbsCIF = ""; String outMsg = ""; List accntdetailsList = new ArrayList<>(); ReportFileProcessing dao = new ReportFileProcessing(); try { InputStream input = Main.class.getClassLoader().getResourceAsStream("config.properties"); Properties prop = new Properties(); if (input == null) { System.out.println("Sorry, unable to find config.properties"); return; } prop.load(input); dbUrl = prop.getProperty("DB_URL"); dbUsr = prop.getProperty("DB_USER"); dbPass = prop.getProperty("DB_PASS"); dbSchema = prop.getProperty("DB_SCHEMA"); inpFolderPath = prop.getProperty("IN_FOLDER_PATH"); sleep = Long.parseLong(prop.getProperty("SLEEP_TIME_MINS")); } catch (Exception e) { e.printStackTrace(); } File folder = new File(inpFolderPath); File unzipFolder = new File(inpFolderPath + "unzipped"); File processedFolder = new File(inpFolderPath + "processed_bkp"); if (!unzipFolder.exists()) { unzipFolder.mkdir(); } if (!processedFolder.exists()) { processedFolder.mkdir(); } while (true) { String unzipFolderPath = unzipFolder.getAbsolutePath(); File[] gzFileList = folder.listFiles(); byte[] buffer = new byte[1024]; try { for (File file : gzFileList) { System.out.println("Current File name: " + file.getName()); if (file.isFile()) { GZIPInputStream gzis = new GZIPInputStream(new FileInputStream(file.getAbsoluteFile())); FileOutputStream out = new FileOutputStream( unzipFolderPath + File.separator + file.getName().replace(".gz", "")); int len; while ((len = gzis.read(buffer)) > 0) { out.write(buffer, 0, len); } gzis.close(); out.close(); file.renameTo(new File(processedFolder.getAbsoluteFile() + File.separator + file.getName())); System.out.println("Done"); } } } catch (Exception e) { e.printStackTrace(); } File[] listOfFiles = unzipFolder.listFiles(); try { for (File file2 : listOfFiles) { if (file2.isFile()) { accntdetailsList.clear(); System.out.println(file2.getName()); br = new BufferedReader(new FileReader(file2.getAbsoluteFile())); String fileName = file2.getName(); while ((line = br.readLine()) != null) { if (!line.isEmpty() && line.length() == 146) { accNo = line.substring(129); cbsAccNo = line.substring(75, 88); cbsCIF = line.substring(95, 108); cbsAccNo = cbsAccNo.replace("-", ""); cbsAccNo = cbsAccNo.replace(" ", ""); cbsCIF = cbsCIF.replace("-", ""); cbsCIF = cbsCIF.replace(" ", ""); if (cbsAccNo.length() != 0 && accNo.length() != 0) { accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); } } if (!line.isEmpty() && line.length() == 129) { accNo = line.substring(112); cbsAccNo = line.substring(74, 89); cbsCIF = line.substring(94, 109); cbsAccNo = cbsAccNo.replace("-", ""); cbsAccNo = cbsAccNo.replace(" ", ""); cbsCIF = cbsCIF.replace("-", ""); cbsCIF = cbsCIF.replace(" ", ""); if (cbsAccNo.length() != 0 && accNo.length() != 0) { accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); } } if (!line.isEmpty() && line.length() > 112 && line.length() != 129 && line.length() != 146) { accNo = "E"; cbsAccNo = line.substring(74, 89); cbsCIF = line.substring(94, 109); cbsAccNo = cbsAccNo.replace("-", ""); cbsAccNo = cbsAccNo.replace(" ", ""); cbsCIF = cbsCIF.replace("-", ""); cbsCIF = cbsCIF.replace(" ", ""); if (cbsAccNo.length() != 0 && cbsCIF.length() != 0) { accntdetailsList.add(accNo + ":" + cbsAccNo + ":" + cbsCIF); System.out.println(accNo + ":" + cbsAccNo + ":" + cbsCIF); } } } if (accntdetailsList.size() > 0) outMsg = dao.insertBulkAccMap(accntdetailsList, "", "", dbUrl, dbUsr, dbPass, dbSchema, fileName); System.out.println(outMsg); } file2.delete(); } System.out.println("___________________________________________________"); TimeUnit.MINUTES.sleep(sleep); } catch (Exception ex) { ex.printStackTrace(); System.out.println("___________________________________________________"); TimeUnit.MINUTES.sleep(sleep); } } } }