golang 에서 io / outil 패키지 사용법

3434 단어 golang
본문 은 Golove 블 로그 에서 전 환 됩 니 다.http://www.cnblogs.com/golove/p/3278444.html   ,
io / outil 패키지 의 함수 와 방법 
func main() {
    s := strings.NewReader("Hello World!")
    ra, _ := ioutil.ReadAll(s)
    fmt.Printf("%s", ra)
    // Hello World!
}

파일 의 모든 데 이 터 를 읽 고 읽 는 데이터 와 읽 는 과정 에서 발생 하 는 모든 오 류 를 되 돌려 줍 니 다. / 읽 는 데 성공 하면 err 는 EOF func ReadFile (filename string) ([] byte, error) 이 아 닌 nil 로 돌아 갑 니 다. 
func main() {
	ra, _ := ioutil.ReadFile("C:\\Windows\\win.ini")
	fmt.Printf("%s", ra)
}

파일 이 존재 하지 않 으 면 perm 권한 으로 이 파일 을 만 듭 니 다. error   
func main() {
	fn := "C:\\Test.txt"
	s := []byte("Hello World!")
	ioutil.WriteFile(fn, s, os.ModeAppend)
	rf, _ := ioutil.ReadFile(fn)
	fmt.Printf("%s", rf)
	// Hello World!
}

디 렉 터 리 dirman 의 모든 디 렉 터 리 와 파일 (하위 디 렉 터 리 포함 하지 않 음) / 읽 은 파일 의 정보 목록 과 읽 는 과정 에서 발생 하 는 모든 오류 / / 되 돌아 오 는 파일 목록 은 정렬 된 func ReadDir (dirname string) ([] os. FileInfo, error) 입 니 다.
func main() {
	rd, err := ioutil.ReadDir("C:\\Windows")
	for _, fi := range rd {
		fmt.Println("")
		fmt.Println(fi.Name())
		fmt.Println(fi.IsDir())
		fmt.Println(fi.Size())
		fmt.Println(fi.ModTime())
		fmt.Println(fi.Mode())
	}
	fmt.Println("")
	fmt.Println(err)
}

 
-----------------------------------------------------------
 
var Discard io.Writer = devNull(0)

Discard 는 io. Writer 입 니 다. Write 호출 은 무조건 성공 합 니 다.devNull 은 ReadFrom 를 최적화 시 켰 기 때문에 io. copy 에서 ioutil. Discard 까지 불필요 한 작업 을 피 했 기 때문에 반드시 성공 할 것 입 니 다. 그러나 ioutil. Discard 는 copy 가 얻 은 수 치 를 기록 하지 않 습 니 다. 예 는 다음 과 같 습 니 다.
 
 
package main

import (
	"fmt"
	"io"
	"io/ioutil"
	"strings"
)

func main() {
	a := strings.NewReader("hello")
	p := make([]byte, 20)
	io.Copy(ioutil.Discard, a)
	ioutil.Discard.Write(p)
	fmt.Println(p)      //[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
}

 
 
---------------------------------------------------------------------------------------------------------------------
ReadCloser 인 터 페 이 스 는 기본 적 인 Read 와 Close 방법 을 조합 했다.NopCloser 는 제 공 된 Reader r 를 빈 조작 Close 방법 으로 포장 한 후 ReadCloser 로 되 돌려 줍 니 다.
 
func main() {
	s := strings.NewReader("hello world!")
	r := ioutil.NopCloser(s)
	r.Close()                                  //  Close    ?!
	p := make([]byte, 10)
	r.Read(p)
	fmt.Println(string(p))   //hello worl
}

 
 
디 렉 터 리 dir 에 임시 파일 을 만 들 고 / / 파일 이름 을 prefix 로 접두사 / / 만 든 파일 의 대상 과 생 성 과정 에서 발생 한 모든 오류 / / dir 가 비어 있 으 면시스템 임시 디 렉 터 리 에 임시 파일 을 만 듭 니 다. / / 환경 변수 에 시스템 임시 디 렉 터 리 가 설정 되 어 있 지 않 으 면 / tmp 에 임시 파일 을 만 듭 니 다. / / 호출 자 는 f. Name () 방법 으로 임시 파일 의 전체 경 로 를 가 져 올 수 있 습 니 다. 
func main() {
	dn := "C:\\"
	f, _ := ioutil.TempFile(dn, "Test")
	fmt.Printf("%s", f.Name())
}

디 렉 터 리 / / 반환 값 만 만 들 었 을 뿐 디 렉 터 리 의 전체 경로 func TempDir (dir, prefix string) (name string, err error)
 
 
func main() {
	dn := "C:\\"
	f, _ := ioutil.TempDir(dn, "Test")
	fmt.Printf("%s", f.Name())
}

 
 
CSDN 블 로그
감사 저자: chenbaoke
golang 에서 io / outil 패키지 사용법 보기

좋은 웹페이지 즐겨찾기