The problem is that your Charact method is stuck in the while loop. You obtain the length of the file and state the conditon numChar != -1.
Keep in mind what data types are for. They store a copy of the data they accept.
Here you're calling f.length() and placing it in numChar (once). Though I'm not very savvy on files, from what I understand you are only storing the file's (current) length once in numChar which means that your while loop will either never execute or execute infinitely since numChar != -1 will be true or false and in your while loop you are not manipulating or changing the data stored in numChar to cause an escape from the loop... therefore an infinite loop.
long numChar = f.length();
int countChar =0;
while(numChar !=-1) // condition - will evaluate to true so long as numChar isn't -1
{
countChar++; // countChar changes, but numChar doesnt ^
}
I made this change and it seemed to work, though I'm not entirely sure it's what you wanted to do--
while(countChar < f.length()){
countChar++;
System.out.println("CharactWhileLoop");
}