Golang扫描不扫描下一行

This scanner dosent scan for the next line. I will explain it in more detail when you see results...

package main

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

func main() {
    var inputFileName string
    var write string

    fmt.Scanln(&inputFileName)

    //func Join(a []string, sep string) string
    s := []string{inputFileName, ".txt"}
    inputFileName = strings.Join(s, "")

    creator, err := os.Create(inputFileName)
    check(err)

    /*
     *Writing
     */

    fmt.Printf("The file name with %s what do you want to write?", inputFileName)
    fmt.Scanln(&write)
    if len(write) <= 0 {
        panic("Cant be empty")
    }

    byteStringWrite := []byte(write)
    //func (f *File) Write(b []byte) (n int, err error)
    fmt.Println("BYTE : ", byteStringWrite)
    fmt.Println("NONBYTE : ", write)
    _, errWriter := creator.Write(byteStringWrite)
    check(errWriter)

    /**
     *Reading File
     */

    read, errRead := ioutil.ReadFile(inputFileName)
    check(errRead)
    readString := string(read)
    fmt.Println("*******************FILE*********************")
    fmt.Println(readString)
}

func check(e error) {
    if e != nil {
        panic(e)
    }
}

Results:

Sample.txt //My User Input
The file name with Sample.txt what do you want to write?Hello World
BYTE :  [72 101 108 108 111]
NONBYTE :  Hello
*******************FILE*********************
Hello

So Here you can see it dosent look for the space. Meaning after the space it automatically quits. Can someone help me figure out this problem? Thankyou.

EDIT

Using bufio.ReadString();

package main

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

func main() {
    var inputFileName string
    var write string

    bio := bufio.NewReader(os.Stdin)
    inputFileName, err := bio.ReadString('
')
    fmt.Println(inputFileName)

    //func Join(a []string, sep string) string
    s := []string{inputFileName, ".txt"}
    inputFileName = strings.Join(s, "")

    creator, err := os.Create(inputFileName)
    check(err)

    /*
     *Writing
     */

    fmt.Printf("The file name with %s what do you want to write?", inputFileName)
    fmt.Scanln(&write)
    if len(write) <= 0 {
        panic("Cant be empty")
    }

    byteStringWrite := []byte(write)
    //func (f *File) Write(b []byte) (n int, err error)
    fmt.Println("BYTE : ", byteStringWrite)
    fmt.Println("NONBYTE : ", write)
    _, errWriter := creator.Write(byteStringWrite)
    check(errWriter)

    /**
     *Reading File
     */

    read, errRead := ioutil.ReadFile(inputFileName)
    check(errRead)
    readString := string(read)
    fmt.Println("*******************FILE*********************")
    fmt.Println(readString)
}

func check(e error) {
    if e != nil {
        panic(e)
    }
}

Results:

amanuel2:~/workspace/pkg_os/07_Practice $ go run main.go 
Sample
The file name with Sample
.txt what do you want to write?Something Else
BYTE :  [83 111 109 101 116 104 105 110 103]
NONBYTE :  Something
*******************FILE*********************
Something

Gives me correct .txt .. But same issue as above, it dosent take spaces

This is exactly what fmt.Scanln is supposed to do:

Scan scans text read from standard input, storing successive space-separated values into successive arguments. Newlines count as space. It returns the number of items successfully scanned. If that is less than the number of arguments, err will report why.

If you want to read a line of text use bufio.Reader:

bio := bufio.NewReader(os.Stdin)

// in case you want a string which doesn't contain the newline
line, hasMoreInLine, err := bio.ReadLine()
s := string(line)    
fmt.Println(s)

// in case you need a string which contains the newline
s, err := bio.ReadString('
')
fmt.Println(s)