go - io.Copy() erase the Reader content -
पैकेज मुख्य आयात ("fmt" "io" "io / ioutil" "os") func मुख्य () {File, err: = os.Open ("HelloWorld") अगर शून्य! = गलती {fmt.Println (err)} defer file.Close () fileTo, err: = os.Create ("fileTo") अगर शून्य! = त्रुटि {fmt.Println (err)} defer file.Close () _, err = io.Copy (fileTo, file) अगर शून्य! = Err {fmt.Println (err)} fileByteOne, err: = ioutil.ReadAll (फ़ाइल) ) अगर शून्य! = गलती {fmt.Println (err)} fmt.Println (fileByteOne)} io.Copy () फ़ाइल सामग्री को मिटा देगा, आउटपुट है:
[] प्रतिलिपि (डीएसटी लेखक, स्रोत रीडर) प्रतिलिपि स्रोत से डीएसटी, यह src सामग्री मिटा देगा क्या मिटा देने से बचने का कोई तरीका है?
io.Copy (फ़ाइल, फाइल ) फ़ाइल सामग्री मिटा देगा यह नहीं होगा लेकिन यह पढ़ने की स्थिति को EOF पर ले जाएगा, जिसका अर्थ है अगले ioutil.ReadAll () से शुरू होगा ... EOF । आप इसे बंद कर सकते हैं और अपने ioutil.ReadAll () से पहले ' फ़ाइल ' पुनः खोल सकते हैं। वैसे, आपके पास दो defer file.Close () उदाहरण: दूसरा वाला होना चाहिए defer fileTo.Close () । या, सरल, एक के साथ इसे रीसेट करें, जैसा कि सुझाव दिया गया है एस। _, err = file.Seek (0, os.SEEK_SET) यह है इसमें भी सचित्र है:
कोई अंतर्निहित रिवाइंड नहीं है, लेकिन ढूंढें (0, 0) इसे पूरा करता है। ( os.SEEK_SET परिभाषित है, जैसा कि 0 ) const SEEK_SET int = 0 // फ़ाइल की उत्पत्ति के सापेक्ष खोजना
Comments
Post a Comment