Можно использовать Desktop.getDesktop().open(File file)
. Посмотрите следующий вопрос для других опций: " [Java], Как открыть пользовательскую систему, предпочел редактора для данного файла? "
Ваш код выглядит правильно. Посмотрите здесь и здесь , чтобы узнать, есть ли что-нибудь не так в вашем коде.
Оказывается, он возвращает правильный размер; код, над которым я работал, использовал неправильную ширину вместо ширины из этого метода, поэтому текст был обрезан, и я был сбит с толку.