Is it possibile to let me read the file row by row, deleting each row I read and at the same time allowing the external application to append other rows to the file?
Yes, you can open the same file for reading and writing from multiple processes. In Linux, for example, you will get two separate file descriptors for the same file. For file writes under the size of PIPE_BUF, or 4096 bytes in Linux, it is safe to assume the operations are atomic, meaning the kernel is handling the locking and unlocking to prevent race conditions.
Assuming Process A is writing to the file has opened it as APPEND, then each time Process A tells the kernel to write()
it will first seek to the size of the file (the end of the file). That means you can safely delete data in the file from Process B as long it is done in between the write operations of Process A. And as long as the write operations from Process A don't exceed PIPE_BUF, Linux guarantees they will be atomic, i.e. Process A can spam write operations and process B can constantly delete/write data, and no funky behavior will result.
Java provides you with implemented File Locks. But it's important to understand that it is only "advisory," not "mandatory." Java does not enforce the restriction, both processes must implement a check to see if another process holds the lock.