Let me propose an algorithm for you:
Code:
while there are characters in the buffer, obtain the current character
if the current character is an opening bracket, opening brace, or opening parenthesis
push the current character's corresponding closing bracket version onto the stack
else if the current character is a closing bracket, closing brace, or closing parenthesis
if the stack is empty
there is a mismatch
pop from the stack
if the popped character is not equal to the current character
there is a mismatch
else
ignore the character or otherwise deal with an invalid character
if the stack is not empty
there is a mismatch
else
everything matches
Now, use your Stack class, but do not use your BracketChecker class, and implement this algorithm. The buffer here can refer to the input buffer, or it could refer to the string that you read in. Frankly, your BracketChecker class is horrible as-is: it is too tightly coupled to input.