HashMap IS basic.
Using two parallel arrays is extremely inefficient. For each word that you read in, you need to search through the keys array, find the index where the word is stored, and then go to the same place in the values array and increase the value in that location by 1.
It doesn't make sense to use a 2D array either, since you are trying to store a String word and an int count frequency, and they are different data types.
If your were counting how many times certain numbers appeared in a document, then you can easily use a single array, but not if you are counting Strings.
In your case, a HashMap is really the ideal data structure to use to keep track of the data. Unless it is a requirement to not use Collections, I would suggest at least trying HashMap.
Scanner file = new Scanner(new File("filename.txt"));
Map<String, Integer> map = new HashMap<String, Integer>();
while (file.hasNext()) {
String key = file.next();
Integer value = map.get(key);
if (value == null) {
map.put(key, 1);
}
else {
map.put(key, ++value);
}
}