Ganz allgemein kann man den Ablauf von sowas wie folgt beschreiben:
1. Eine API / Library deckt immer Use-Cases ab. Man schreibt sowas nicht ins blaue hinen. Daher erster Schritt: Welche Funktionen soll deine API bereitstellen? Dateien lesen, wie genau soll der Inhalt gelesen werden können, was soll modifiziert werden können?
2. Das Fachwissen erfassen. Bevor man eine API schreiben kann, muss man das zugrundeliegende nahezu vollständig verstanden haben. Es ist nich nötig, jedes Detail zu kenne aber je mehr, desto besser.
3. Eine Abstraktion schaffen: durch 2. weißt du jetzt, welche
Informationen in einer Datei X vorliegen und in welchem Datenformat. (Achtung:
Informationen != Daten). Die Daten in der Datei musst du nun also in eine Logische Struktur bringen. Viele Dateiformate enthalten diese Struktur schon im Großteil (bspw. CSV: Zeilen, Spalten, Kopfzeile, ...). Auch das Encoding nicht vergessen

4. Die Abstraktion als OOD abbilden: Die Struktur der Informationen wird jetzt von Klassen modelliert.
Ganz wichtig: in diesem Schritt schreibst man am besten keine einzige Ziele Code! Man erstellt ein Klassendiagramm.
5. Das Klassendiagramm in Quellcode der gewünschten Programmiersprache übersetzen;
Auch hier wird kein einziger Methodenkörper befüllt!
6. In TDD schreibt man jetzt die Tests gegen die zuvor erstellten Klassen. Ohne TDD passiert das parallel zum nächsten Schritt.
5. Des in 5. erstelle Grundgerüst kann nun Implementiert werden (Code kann in die Leeren Methodenkörper geschrieben werden). Bei komplexen Dateiformaten (bspw. .doc, odt, PDF, MPEG, ...) ist das
viel zu viel für einen einzelnen Programmierer.
Eine vernünftige Library steht und fällt mit den Schritten 1-3. Wenn da gepfuscht und schnell-schnell gemacht wird, kommt ein nutzloses Stück Scheisse bei raus.
P.S.: Bei 4. ist es unabdingbar, dass der Code, welcher Dateien ließt und schreibt, 100% von dem Code getrennt ist, welcher den Dateiinhalt abbildet. An sonsten kann man keine sinnvollen Tests schreiben und deine Library hat am Ende mehr Bugs als LOC.
P.P.S: Wenn du das mal selbst üben willst, empfehle ich dir Dateiformate wie CSV oder Markdown als Anfang. Das schafft man alleine in kurzer Zeit.
P.P.P.S.: APIs beschäftigen sich logischerweise nicht immer mit Dateien. Für andere Libraries oder Server-Schnittstellen (bspw. Rest-APIs) ist der Prozess fast komplett anders.