1. A data writing method, for a rewritable non-volatile memory module comprising a plurality of physical blocks, wherein a plurality of logical blocks are configured to map to a part of the physical blocks, the data writing method comprising: configuring a plurality of virtual block addresses to map to at least a part of the logical blocks and providing the virtual block addresses to a host system; receiving a write command from the host system, wherein the write command instructs to write a file data to a plurality of first virtual block addresses of the virtual block addresses, and the first virtual block addresses are mapped to a plurality of first logical blocks among the at least the part of the logical blocks; writing the file data to the physical blocks mapped to a plurality of second logical blocks of the logical blocks; determining whether a program failure is occurred when the file data is written to the physical blocks mapped to the second logical blocks; and if the program failure is not occurred, mapping the first virtual block addresses to the second logical blocks.