package eu.fbk.knowledgestore.populator.naf; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.Writer; import javax.xml.bind.JAXBException; public class groupTxtF { static OutputStream out; /** * @param args * @throws IOException * @throws JAXBException * @throws ClassNotFoundException * @throws SecurityException * @throws NoSuchMethodException * @throws IllegalAccessException * @throws InstantiationException */ public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, ClassNotFoundException, JAXBException, IOException { analyzePathAndRunSystem(args[0]); } private static void analyzePathAndRunSystem(String path) throws JAXBException, IOException, InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, ClassNotFoundException { File filePath = new File(path); if(filePath.exists()&&filePath.isDirectory()){ //create report file in the same directory of running the system out = new FileOutputStream(new File(filePath.getPath(), "groupedReport.txt")); File[] listOfFiles = filePath.listFiles(); for (int i = 0; i < listOfFiles.length; i++) { // System.out.println(listOfFiles[i].getName()); if (listOfFiles[i].isFile()&&listOfFiles[i].getName().endsWith(".txt")) { System.err.println(i+"="+listOfFiles[i].getName()); //out.append("\n"+i+"="+listOfFiles[i].getName()+"\n"); copyFile(listOfFiles[i]); } out.flush(); System.gc(); Runtime.getRuntime().gc(); } out.flush(); out.close(); }else if(filePath.exists()&&filePath.isFile()) { System.err.println("It isn't efficient to group one file in one file"); } out.flush(); out.close(); } static void copyFile(File source) { if (source == null || !source.exists()) return; try{ InputStream inStream = new FileInputStream(source); byte[] buffer = new byte[1024]; int length; while ((length = inStream.read(buffer)) > 0) { out.write(buffer, 0, length); } inStream.close(); out.flush(); //System.out.println("File copied into " + target); }catch(IOException e) { e.printStackTrace(); } } }