MCPcopy Index your code
hub / github.com/codechenx/FastTableViewer / getFileScanner

Function getFileScanner

io.go:743–777  ·  view source on GitHub ↗

get suitable scanner(compressed or not)

(fn string)

Source from the content-addressed store, hash-verified

741
742// get suitable scanner(compressed or not)
743func getFileScanner(fn string) (*bufio.Scanner, error) {
744 info, err := os.Stat(fn)
745 if err != nil {
746 return nil, err
747 }
748 //check if fn is a directory
749 if info.IsDir() {
750 return nil, errors.New(fn + " is a directory")
751 }
752
753 file, err := os.Open(fn)
754 if err != nil {
755 return nil, err
756 }
757
758 var scanner *bufio.Scanner
759 //if input is a gzip file
760 if strings.HasSuffix(fn, ".gz") {
761 gzCont, err := gzip.NewReader(file)
762 if err != nil {
763 return nil, err
764 }
765 scanner = bufio.NewScanner(gzCont)
766 } else {
767 scanner = bufio.NewScanner(file)
768 }
769
770 //increase buffer size for large files and long lines
771 //default is 64KB, we set to 1MB for better performance
772 const maxScanTokenSize = 1024 * 1024
773 buf := make([]byte, maxScanTokenSize)
774 scanner.Buffer(buf, maxScanTokenSize)
775
776 return scanner, nil
777}
778
779// check columns that should be displayed
780func getVisCol(showNumL, hideNumL []int, colLen int) ([]int, error) {

Callers 2

loadFileToBufferAsyncFunction · 0.85
loadFileToBufferFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected