当前位置: 首页>>代码示例>>Golang>>正文


Golang Reader.UnreadByte方法代码示例

本文整理汇总了Golang中bufio.Reader.UnreadByte方法的典型用法代码示例。如果您正苦于以下问题:Golang Reader.UnreadByte方法的具体用法?Golang Reader.UnreadByte怎么用?Golang Reader.UnreadByte使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在bufio.Reader的用法示例。


在下文中一共展示了Reader.UnreadByte方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: ReadWord

// Reads a single word from a file, assuming space + tab + EOL to be word boundaries
func ReadWord(fin *bufio.Reader) (word string, err error) {
	var a int = 0
	var ch byte
	var buf bytes.Buffer
	for {
		ch, err = fin.ReadByte()
		if err == io.EOF {
			break
		}
		if ch == 13 {
			continue
		}
		if (ch == ' ') || (ch == '\t') || (ch == '\n') {
			if a > 0 {
				if ch == '\n' {
					fin.UnreadByte()
				}
				break
			}
			if ch == '\n' {
				word = "</s>"
				return
			} else {
				continue
			}
		}
		buf.WriteByte(ch)
		a++
	}
	if a >= MAX_STRING { // Truncate too long words
		buf.Truncate(MAX_STRING)
	}
	word = buf.String()
	return
}
开发者ID:koji-ohki-1974,项目名称:word2vec,代码行数:36,代码来源:main.go

示例2: readHexInt

func readHexInt(r *bufio.Reader) (int, error) {
	n := 0
	i := 0
	var k int
	for {
		c, err := r.ReadByte()
		if err != nil {
			if err == io.EOF && i > 0 {
				return n, nil
			}
			return -1, err
		}
		k = hexbyte2int(c)
		if k < 0 {
			if i == 0 {
				return -1, fmt.Errorf("cannot read hex num from empty string")
			}
			r.UnreadByte()
			return n, nil
		}
		if i >= maxHexIntChars {
			return -1, fmt.Errorf("cannot read hex num with more than %d digits", maxHexIntChars)
		}
		n = (n << 4) | k
		i++
	}
}
开发者ID:Heu,项目名称:fasthttp,代码行数:27,代码来源:bytesconv.go

示例3: read

// read reads the next value, ignoring whitespace.
func read(r *bufio.Reader) []byte {
	var comment bool
	space(r)

	buf := make([]byte, 0, 16)

loop:
	for {
		b, err := r.ReadByte()
		check(err)

		switch {
		case b == '#':
			comment = true
		case (comment && isNewline(b)) || (!comment && isSpace(b)):
			check(r.UnreadByte())
			break loop
		}

		if !comment {
			buf = append(buf, b)
		}
	}

	if len(buf) == 0 {
		return read(r)
	}

	return buf
}
开发者ID:jteeuwen,项目名称:pnm,代码行数:31,代码来源:decode.go

示例4: readHexInt

func readHexInt(r *bufio.Reader) (int, error) {
	n := 0
	i := 0
	var k int
	for {
		c, err := r.ReadByte()
		if err != nil {
			if err == io.EOF && i > 0 {
				return n, nil
			}
			return -1, err
		}
		k = hexbyte2int(c)
		if k < 0 {
			if i == 0 {
				return -1, errEmptyHexNum
			}
			r.UnreadByte()
			return n, nil
		}
		if i >= maxHexIntChars {
			return -1, errTooLargeHexNum
		}
		n = (n << 4) | k
		i++
	}
}
开发者ID:stellar,项目名称:bridge-server,代码行数:27,代码来源:bytesconv.go

示例5: read_symbol

func read_symbol(b *bufio.Reader) (goscm.SCMT, error) {
	ret := ""
	var c byte
	var err error

	for {
		c, err = b.ReadByte()
		if err != nil {
			break
		}
		if c == ')' {
			b.UnreadByte()
			break
		}
		if c == ';' {
			read_comment(b)
			continue
		}
		if is_whitespace(c) {
			break
		}
		ret = string(append([]byte(ret), c))
	}
	return goscm.NewSymbol(ret), err
}
开发者ID:JohnAnthony,项目名称:goscm,代码行数:25,代码来源:read.go

示例6: ReadParam

func (p *protocol) ReadParam(r *bufio.Reader) ([]byte, bool, error) {
	data, err := r.ReadSlice('\r')
	if err != nil {
		return nil, false, p.sanitizeErr(err)
	}
	err = p.assumeByte(r, '\n')
	if err != nil {
		return nil, false, err
	}

	next, err := r.ReadByte()
	if err != nil {
		return nil, false, p.sanitizeErr(err)
	}
	hasNext := true
	if next == '\r' {
		hasNext = false
		err = p.assumeByte(r, '\n')
		if err != nil {
			return nil, false, p.sanitizeErr(err)
		}
	} else {
		r.UnreadByte()
	}

	return data, hasNext, nil
}
开发者ID:clrpc,项目名称:clrpc-go,代码行数:27,代码来源:protocol.go

示例7: skipComments

// skipComments skips all comments (and whitespace) that may occur between PNM
// header tokens.
//
// The singleSpace argument is used to scan comments between the header and the
// raster data where only a single whitespace delimiter is allowed. This
// prevents scanning the image data.
func skipComments(r *bufio.Reader, singleSpace bool) (err error) {
	var c byte

	for {
		// Skip whitespace
		c, err = r.ReadByte()
		for unicode.IsSpace(rune(c)) {
			if c, err = r.ReadByte(); err != nil {
				return err
			}
			if singleSpace {
				break
			}
		}
		// If there are no more comments, unread the last byte and return.
		if c != '#' {
			r.UnreadByte()
			return nil
		}
		// A comment ends with a newline or carriage return.
		for c != '\n' && c != '\r' {
			if c, err = r.ReadByte(); err != nil {
				return
			}
		}
	}
	return
}
开发者ID:jcmdev0,项目名称:go,代码行数:34,代码来源:reader.go

示例8: isEndOfString

func isEndOfString(br *bufio.Reader) (ended bool, text string, err error) {
	var b byte
	w := bytes.NewBufferString("")
	for {
		switch b, err = br.ReadByte(); {
		case err == io.EOF:
			ended = true
			err = nil
			return
		case err != nil:
			return
		case b == ',' || b == ']':
			br.UnreadByte()
			ended = true
			return
		case !unicode.IsSpace(rune(b)):
			ended = false
			text = w.String()
			err = nil
			br.UnreadByte()
			return
		}
		w.WriteByte(b)
	}
	return
}
开发者ID:webglider,项目名称:gettc,代码行数:26,代码来源:reader.go

示例9: Decode

func Decode(input *bufio.Reader) (_ string, err error) {
	buf := bytes.NewBufferString("")
	for {
		b, err := input.ReadByte()
		if err != nil {
			break
		}
		if b != '=' {
			err = buf.WriteByte(b)
		} else {
			input.UnreadByte()
			charset, err := readCharset(input)
			if err != nil {
				return "", err
			}
			encoding, err := readEncoding(input)
			if err != nil {
				return "", err
			}
			(&Decoder{encoding, charset}).Decode(input, buf)
		}
	}
	if err == io.EOF {
		return buf.String(), nil
	}
	return buf.String(), err
}
开发者ID:samlecuyer,项目名称:rfc2047,代码行数:27,代码来源:decode.go

示例10: peek

func peek(r *bufio.Reader) (c byte, e error) {
	c, e = r.ReadByte()
	if e != io.EOF {
		r.UnreadByte()
	}
	return
}
开发者ID:rosatolen,项目名称:coyim,代码行数:7,代码来源:sexp.go

示例11: expect

func expect(r *bufio.Reader, c byte) bool {
	ReadWhitespace(r)
	res, err := r.ReadByte()
	if res != c {
		r.UnreadByte()
	}

	return res == c && err != io.EOF
}
开发者ID:rosatolen,项目名称:coyim,代码行数:9,代码来源:sexp.go

示例12: genericExpect

func genericExpect(br *bufio.Reader, what string, predicate func(byte) bool) error {
	switch b, err := br.ReadByte(); {
	case err != nil:
		return err
	case !predicate(b):
		br.UnreadByte()
		return NewErrExpect(br, what)
	}
	return nil
}
开发者ID:webglider,项目名称:gettc,代码行数:10,代码来源:reader.go

示例13: skip

func skip(rd *bufio.Reader) {
	var b byte = ' '
	var err error
	for b == ' ' || b == '\t' || b == '\n' {
		b, err = rd.ReadByte()
		if err != nil {
			return
		}
	}
	rd.UnreadByte()
}
开发者ID:simultechnology,项目名称:go-gt,代码行数:11,代码来源:matrix.go

示例14: space

// space reads whitespace from the given reader, until
// the stream ends or a non-whitespace character is found.
func space(r *bufio.Reader) {
	for {
		b, err := r.ReadByte()
		check(err)

		if !isSpace(b) {
			check(r.UnreadByte())
			return
		}
	}
}
开发者ID:jteeuwen,项目名称:pnm,代码行数:13,代码来源:decode.go

示例15: peekEOF

//Peek and check if packet is EOF
func peekEOF(br *bufio.Reader) (bool, os.Error) {
	b, err := br.ReadByte()
	if err != nil {
		return false, err
	}
	err = br.UnreadByte()
	if b == 0xfe {
		return true, err
	}
	return false, err
}
开发者ID:newblue,项目名称:Go-MySQL-Client-Library,代码行数:12,代码来源:mysql_util.go


注:本文中的bufio.Reader.UnreadByte方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。