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 a first page of the non-volatile memory; (B) when the data does not exceed the first page and is insufficient for the first page, storing the data into the volatile memory; (C) determining whether next data is to be programmed into the first page; (D) when the data does not exceed the first page and is insufficient for the first page and when the next data is determined to be programmed into the first page, determining whether the data plus the next data exceed the first page; and (E) when the data plus the next data do not exceed the first page and are equal to the first page, programming the data stored in the volatile memory and the next data at the same time in the first page.