1. A method of writing data of a nonvolatile semiconductor memory device, the device comprising a memory cell array including first lines, second lines intersecting the first lines, and memory cells provided one at each of intersections of the first lines and the second lines and each storing data by a data storing state of a filament, the method comprising: repeatedly executing a setting operation and a verifying operation until the memory cell attains a desired data storing state, and then executing a removing operation, the setting operation applying an electrical setting pulse having a first polarity to the memory cell, the verifying operation applying a verifying pulse to the memory cell, the verifying pulse being used to confirm whether the memory cell has attained the desired data storing state, the setting pulse after applying the verifying pulse having an amplitude which is higher than that of the setting pulse before applying the verifying pulse, the removing operation applying an electrical removing pulse having a second polarity opposite to the first polarity to the memory cell, and maintaining the attained desired data storing state, the removing pulse having an amplitude which is lower than that of a resetting pulse, the resetting pulse having the second polarity and being used to erase the attained desired data storing state.