Loading tab-separated tweet data into an array
The prohibition on ArrayList is unfortunate.  One natural solution would be to use Files.readAllLines(), but that returns a List&lt;String&gt;, which is probably off-limits to you.  Likewise, Files.lines() produces a Stream&lt;String&gt;, which would be even better and thus probably even more forbidden to you.

Your workaround is to open the file twice, which is definitely undesirable.  (File I/O is considered "expensive".)  If I had to make a recommendation based on arrays, I would suggest


Files.readAllBytes() to slurp the entire file into a byte array.
Make a String from the byte array.
Use String.split() to form an array of lines.
For each line, retain only the third field.


My reasoning is that you eventually have to read the entire file anyway, so you might as well read it all at once, and only once.  Once you have a string, you can take advantage of String.split().

I would also like to note that catching IOException to print a stack trace is counterproductive.  If you don't have a good way to handle an exception, just let it propagate by declaring public void loadTweets(…) throws IOException.  That way, you're letting the caller know that something went wrong — which is exactly what exceptions are meant for.