title: Golang: Skipping Whitespace in a file
body: <p>In reading a file in Go I am attempting to skip all of the white spaces; however, I am having issues finding the correct method to do this. Any assistance would be appreciated</p>
  
  <pre><code>file, err := os.Open(filename) // For read access.
          this.file = file
          if err != nil {
                  log.Fatal(err)
          }
  //skip white space
  
    c := make([]byte, 1)
  
      char, err := this.file.Read(c)
  
      //skip white space
      for {
              //catch unintended errors
              if err != nil &amp;&amp; err != io.EOF {
                      panic(err)
              }
              if err == io.EOF || !unicode.IsSpace(int(c)) {
                      break
              }
              //get next
              char, err := this.file.Read(c)
      }
  </code></pre>
  
  <p>I am just simply attempting to create a scanner for a file to read a single character at a time and ignore whitespace</p>
  
  <p><strong>EDIT</strong> </p>
  
  <p>I changed a few things around to make use of bufio.Reader; however I have still fallen into issue What is the correct way to read a file character by character so that it might be compared to a specific symbol such as 'A' but also can ignore whitespace i.e unicode.isSpace(rune)</p>
  
  <pre><code>char, size, err := this.reader.ReadRune()
      //skip white space and comments
      for {
              //catch unintended errors
              if err != nil &amp;&amp; err != io.EOF {
                      panic(err)
              }
              if err == io.EOF {
                      break
              }
  
              //skip it when their is no data or a space
              if size != 0 &amp;&amp; char == '{' {
                      //Ignore Comments
                      //Documentation specifies no nested comments
                      for char != '}' {
                              char, size, err = this.reader.ReadRune()
                      }
              } else if !unicode.IsSpace(char) {
                      break
              }
  
              // Do something with the byte
              fmt.Print(char)
  
              //get next
              char, size, err = this.reader.ReadRune()
      }
  </code></pre>