1. A data programming method for a data programming device having a non-volatile memory and a volatile memory, the method comprises: (A) determining whether data exceeds one page; (B) when the data exceeds one page, programming a portion of the data into the non-volatile memory and storing a remaining portion of the data, which is insufficient for one page, into the volatile memory; (C) when the data does not exceed one page and is exactly one page, programming the data into the non-volatile memory; (D) when the data does not exceed one page and is insufficient for one page, storing the data into the volatile memory; (E) determining whether a next data is programmed into the same page as the data stored in the volatile memory; (F) when the next data is programmed into the same page as the data stored in the volatile memory, performing the step (A); and (G) when the next data is not programmed into the same page as the data stored in the volatile memory, programming the data stored in the volatile memory into the non-volatile memory and performing the step (A).