import java.io.*;
public class FileSplitter {
public static void main(String[] args) throws IOException {
String inputFilePath = "input.txt"; // path to input file
int batchSize = 5000; // number of lines per batch
int batchNumber = 1; // current batch number
int lineNumber = 0; // current line number
String outputFilePath = "output_" + batchNumber + ".txt"; // path to current output file
BufferedReader reader = new BufferedReader(new FileReader(inputFilePath));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath));
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
lineNumber++;
if (lineNumber == batchSize) { // if batch size is reached
writer.close(); // close current output file
batchNumber++; // increment batch number
lineNumber = 0; // reset line number
outputFilePath = "output_" + batchNumber + ".txt"; // set path to new output file
writer = new BufferedWriter(new FileWriter(outputFilePath));
}
}
writer.close(); // close last output file
reader.close(); // close input file
}
}