trivial regex question (the answer is most probably Java-specific):
\"#This is a comment in a file\".matches(\"^#\")
This returns false. As
The matches method matches your regex against the entire string.
So try adding a .* to match rest of the string.
"#This is a comment in a file".matches("^#.*")
which returns true. One can even drop all anchors(both start and end) from the regex and the match method will add it for us. So in the above case we could have also used "#.*" as the regex.