Você não menciona a desmontagem antes de ejetar o cartão. Se isso não é uma omissão ao escrever a pergunta, existe o seu problema.
Escrever em qualquer tipo de disco é armazenado em buffer : o sistema operacional acumula dados para gravar na memória e os grava em o disco quando julgar conveniente. Os dados não são necessariamente gravados no disco na mesma ordem em que os aplicativos gravaram seus arquivos.
Normalmente, isso é totalmente transparente para aplicativos. Quando um aplicativo lê dados do disco, se os dados ainda estiverem aguardando em um buffer, o aplicativo recupera esses dados.
No entanto, se você ejetar o disco, todos os buffers não gravados serão perdidos. Eles não são recuperados quando você insere o disco de volta porque o sistema operacional não tem como ter certeza de que este é o mesmo disco e que o disco não foi modificado em outra máquina nesse meio tempo. (E, de qualquer maneira, o sistema operacional reutiliza os buffers na memória para outros conteúdos assim que detecta que o disco desapareceu - porque ele não poderia usar o conteúdo do buffer para nada mesmo.)
Antes de ejetar o disco, você precisa dizer ao sistema operacional que não o está usando por mais tempo. Isso é chamado de desmontar (a operação oposta, fazendo com que o sistema comece a usar um sistema de arquivos, é chamado de montagem ). Quando você diz ao sistema para desmontar o sistema de arquivos, ele irá liberar todos os buffers para que os dados no disco estejam atualizados. Ambientes de área de trabalho típicos montam automaticamente o disco assim que você o insere. Você precisa dizer ao seu sistema para desmontar antes de remover o disco: se você remover o disco, é muito tarde para o sistema desmontar. Muitos gerenciadores de arquivos mostram um botão “desmontar” ou “ejetar”; pressione-o e espere o gerenciador de arquivos informar que a operação foi concluída (dependendo da quantidade de dados a serem gravados, pode levar alguns segundos) e, em seguida, você pode ejetar o cartão.
Isso não tem nada a ver com o exfat, a propósito, isso aconteceria com qualquer sistema de arquivos e qualquer mídia.
É possível configurar gravações no cartão para acontecerem automaticamente. Isso não é feito porque pode ser muito mais lento e porque as gravações mais frequentes podem desgastar a mídia flash muito rapidamente (a mídia flash é limitada no número de vezes que um bloco pode ser reescrito e reescrevendo repetidamente um bloco apenas para atualizar uma pequena parte é ineficiente comparando a escrever uma grande quantidade de dados de uma só vez).