Source File
ioutil.go
Belonging Package
io/ioutil
// Copyright 2009 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.// Package ioutil implements some I/O utility functions.//// As of Go 1.16, the same functionality is now provided// by package io or package os, and those implementations// should be preferred in new code.// See the specific function documentation for details.package ioutilimport ()// ReadAll reads from r until an error or EOF and returns the data it read.// A successful call returns err == nil, not err == EOF. Because ReadAll is// defined to read from src until EOF, it does not treat an EOF from Read// as an error to be reported.//// As of Go 1.16, this function simply calls io.ReadAll.func ( io.Reader) ([]byte, error) {return io.ReadAll()}// ReadFile reads the file named by filename and returns the contents.// A successful call returns err == nil, not err == EOF. Because ReadFile// reads the whole file, it does not treat an EOF from Read as an error// to be reported.//// As of Go 1.16, this function simply calls os.ReadFile.func ( string) ([]byte, error) {return os.ReadFile()}// WriteFile writes data to a file named by filename.// If the file does not exist, WriteFile creates it with permissions perm// (before umask); otherwise WriteFile truncates it before writing, without changing permissions.//// As of Go 1.16, this function simply calls os.WriteFile.func ( string, []byte, fs.FileMode) error {return os.WriteFile(, , )}// ReadDir reads the directory named by dirname and returns// a list of fs.FileInfo for the directory's contents,// sorted by filename. If an error occurs reading the directory,// ReadDir returns no directory entries along with the error.//// As of Go 1.16, os.ReadDir is a more efficient and correct choice:// it returns a list of fs.DirEntry instead of fs.FileInfo,// and it returns partial results in the case of an error// midway through reading a directory.func ( string) ([]fs.FileInfo, error) {, := os.Open()if != nil {return nil,}, := .Readdir(-1).Close()if != nil {return nil,}sort.Slice(, func(, int) bool { return [].Name() < [].Name() })return , nil}// NopCloser returns a ReadCloser with a no-op Close method wrapping// the provided Reader r.//// As of Go 1.16, this function simply calls io.NopCloser.func ( io.Reader) io.ReadCloser {return io.NopCloser()}// Discard is an io.Writer on which all Write calls succeed// without doing anything.//// As of Go 1.16, this value is simply io.Discard.var Discard io.Writer = io.Discard