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

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -