Using BigDecimal to validate epoch timestamp in exponential notation
There's no point in calling toBigInteger since that doesn't throw anything. You might as well just have this:

try {
    new BigDecimal(data);
} catch(NumberFormatException n) {
    return false;
}
return true;


Or you might consider using toBigIntegerExact if you don't allow fractional parts in the number (e.g. 1.2345E3 which is 1234.5 is not allowed):

try {
    new BigDecimal(data).toBigIntegerExact();
} catch(NumberFormatException | ArithmeticException e) {
    return false;
}
return true;


Also, have you thought about whether negative numbers should be allowed?

Regarding time &amp; space performance, it will create one BigDecimal object (and possibly one BigInteger object) for every valid record. It will then release it as eligible for garbage collection. The JIT compiler will probably optimize this to make it insignificant compared to the time it takes to read and write the records.