Ваш код имеет несколько проблем:
- не рекомендуется использовать ключевое слово break
- использование цикла с условием (true) и его прерывание в случае чего-то очень близко к "переходу к программированию" и его следует избегать
вы можете иметь что-то вроде
boolean finished = true;
while( !finished )
{
if( c < 0 )
finished = true;
}//while
Этот тип цикла более приятен для чтения и не «шокирует», поскольку при его прочтении не существует «бесконечного цикла».
Более того, вам следует рассмотреть возможность использования BufferedReader для чтения текстовых файлов. Этот класс предоставит вам строки символов, которые дадут более простой код:
BufferedReader bfr = new BufferedReader( new InputStreamReader(am.open(filename), "UTF-8"); );
StringBuffer sb = new StringBuffer();
String read = "";
while( (read=bfr.readLine()) != null )
sb.apennd( read );
BuffereReader будет использовать буфер для чтения более одного байта за раз из вашего файла, что намного эффективнее.
Кстати, вы пытаетесь / ловить / наконец структура довольно хорошо сделана.
С уважением,
Stéphane