This can be done with php.
The issue of splitting content over several pages is called "pagination" (there's your search word), and that question has been answered several times on this board. There should also be several tutorials that you can find through google.
If I understand you correctly, you will be adding to an existing file, or simply keep replacing it as you want to store more news / data. While it may seem simpler to handle storage in a simple file like you do (and initially is), you should consider using a database to manage your data.
For example, if you have 9 items per page and page 10 is requested (news items 82 to 90), you would either have to know the offset within the file where item 82 start (by storing indices into the content file, or by storing all news items as fixed length records), or read the file from the start until you have discarded 81 news items... These issues, and many more, have allready been solved in relational databases, which makes your life a lot easier in the end.
MySQL is, as far as I know, the most commonly used DBMS free of charge, but there is also PostgreSQL. I've never used SQLite myself, so I've no idea what it can and cannot do, but it will probably meet your requirements.
Either way, if you start storing data in a database, a forum search for "pagination" or a google search for "php mysql pagination tutorial" ought to give you some places to start. And even if you do stick to file storage, reading up on pagination using database storage will give you the general idea, and you might be able to adapt it to using flat file storage instead. Adding an indexing file or using fixed length records in your file is also straightforward once you understand what it is you need and why.
So get to coding, and post back if you run into troubles 🙂