We can check whether a file is empty using the below methods,
USING IDCAMS
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//DDIN DD DSN=&TEST.DATA.FILE,DISP=SHR
//SYSIN DD*
PRINT INFILE(DDIN) COUNT(1) CHAR
/*
IF RETURN CODE IS EQUAL TO 4 THE FILE IS EMPTY
USING SELCOPY
//STEP01 EXEC PGM=SELCOPY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//DDIN DD DSN=&TEST.DATA.FILE,DISP=SHR
//DDOUT DD DUMMY
//SYSIN DD*
READ DDIN
WRITE DDOUT
/*
IF THE RETURN CODE IS = 16 THEN THE FILE IS EMPY
USING ICETOOL
//STEP01 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//DDIN DD DSN=&TEST.DATA.FILE,DISP=SHR
//TOOLIN DD DATA
COUNT FROM(DDIN) EMPTY
/*
IF THE RETURN CODE IS = 0 THEN THE FILE IS NOT EMPY ELSE EMPTY
USING IKJEFT01
//STEP01 EXEC PGM=IKJEFT01,DYNAMNBR=25
COUNTS THE NUMBER OF RECORDS IN THE FEED FILE
IF RETURN CODE IS LESS THEN 4 THE FILE IS EMPTY ELSE THE FILE HAS DATA.
//STEP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//DDIN DD DSN=&TEST.DATA.FILE,DISP=SHR
//SYSIN DD*
PRINT INFILE(DDIN) COUNT(1) CHAR
/*
IF RETURN CODE IS EQUAL TO 4 THE FILE IS EMPTY
USING SELCOPY
//STEP01 EXEC PGM=SELCOPY
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//DDIN DD DSN=&TEST.DATA.FILE,DISP=SHR
//DDOUT DD DUMMY
//SYSIN DD*
READ DDIN
WRITE DDOUT
/*
IF THE RETURN CODE IS = 16 THEN THE FILE IS EMPY
USING ICETOOL
//STEP01 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//DDIN DD DSN=&TEST.DATA.FILE,DISP=SHR
//TOOLIN DD DATA
COUNT FROM(DDIN) EMPTY
/*
IF THE RETURN CODE IS = 0 THEN THE FILE IS NOT EMPY ELSE EMPTY
USING IKJEFT01
//STEP01 EXEC PGM=IKJEFT01,DYNAMNBR=25
COUNTS THE NUMBER OF RECORDS IN THE FEED FILE
IF RETURN CODE IS LESS THEN 4 THE FILE IS EMPTY ELSE THE FILE HAS DATA.