...form feed or *FCFC characters.
That sounds like you had a large spooled file (5500 pages) that you ran CPYSPLF against. Then you copied the database file to a streamfile, and you want to break that streamfile into six parts.
To break it into parts, you will read lines from the file and count how many start with a '1' character. Whenever the count goes past 1000, you'll route your output to a new streamfile.
The uses of such a file might be few, but I suppose you have your reason.
I might come up with an ugly Qshell script using sed with a regular expression to find '1' at the start of a line, but it would be much more understandable just to read lines and copy them to another file. As soon as you count 1001, close the output file, open a new one and start writing again.
Java is probably easiest. After that, the ILE C APIs will be next easiest. Use fopen(), fgets(), fputs() and fclose(). They need to be coded in C, though, because they're implemented as C macros. However, if you look up the macros in the QSYSINC library, you can see how the macros translate into _C_IFS_fopen(), _C_IFS_fgets(), _C_IFS_fputs() and _C_IFS_fclose(), and those are procedure calls you can bind into any ILE language.
Overall, this seems like a complex bunch of code that has no known purpose. The logic problem is that only maybe every 50 to 60 lines will have a 'page' marker, and there is no guarantee that every page will have the same number of lines between those markers. There seems to be no good way around reading every line and counting markers.
But why are you doing it? Maybe there are better alternatives.