test script
This commit is contained in:
58
split-stream.go
Normal file
58
split-stream.go
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"strconv"
|
||||||
|
"bufio"
|
||||||
|
)
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
// Create file to read
|
||||||
|
inputFile, err := os.Open("input.txt")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
log.Fatal("Failed to create file.")
|
||||||
|
}
|
||||||
|
inputFileScanner := bufio.NewScanner(inputFile)
|
||||||
|
// For changing the buffer size
|
||||||
|
//const maxCapacity int =
|
||||||
|
//buf := make([]byte,maxCapacity)
|
||||||
|
//inputFileScanner.Buffer(buf, maxCapacity)
|
||||||
|
|
||||||
|
// Loop to create file handler array
|
||||||
|
var fileDescArray []*os.File
|
||||||
|
numberOfFileDesc := 7
|
||||||
|
for fileDescIndex := range numberOfFileDesc {
|
||||||
|
|
||||||
|
// Create and open file
|
||||||
|
handler, err := os.Create("file" + strconv.Itoa(fileDescIndex))
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Append the handler to the list
|
||||||
|
fileDescArray = append(fileDescArray,handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loop through open file and write to file handlers
|
||||||
|
var fileArrayIndex int = 0
|
||||||
|
fileDescArrayLen := len(fileDescArray)
|
||||||
|
for inputFileScanner.Scan() {
|
||||||
|
(fileDescArray[fileArrayIndex % fileDescArrayLen]).Write(append(inputFileScanner.Bytes(),'\n'))
|
||||||
|
fileArrayIndex = fileArrayIndex + 1
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loop to close all files
|
||||||
|
for _, handler := range fileDescArray {
|
||||||
|
if err := handler.Close(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Close input file
|
||||||
|
if err := inputFile.Close(); err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Reference in New Issue
Block a user