There are 2 ways to do this :
1. From Xml
use :
<TextView
.........
android:gravity="center"/>
2. From Java class
use :
[textview].setGravity(Gravity.CENTER);
Потому что таким образом он может обнаружить EOF
, не зная, насколько велик файл. Все, что ему нужно сделать, это просто попытаться прочитать, и если чтение короткое (но не ошибка), значит, вы достигли конца файла.
Это отражает функциональность системы чтения
вызов, который обычно заканчивается вызовом ввода-вывода файла (материал win32 может вызывать ReadFile
, но я считаю, что функциональность аналогична).
Из прочтите раздел
man-страницы «ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ» ( выделено мной):
В случае успеха количество прочитанных байтов возвращается (ноль означает конец файл) , а позиция файла - продвинулся на это число. Это не ошибка, если это число меньше, чем количество запрошенных байтов; этот может случиться, например, потому что меньше байты доступны прямо сейчас (может быть, потому что мы были близки к конец файла, или потому что мы читаем от трубы или от терминала), или потому что чтение () было прервано сигнал. В случае ошибки возвращается -1, а errno установлен соответствующим образом. В этом случае не уточняется, позиция файла (если есть) изменяется.
Кстати: хороший способ написать то, что вы хотите, будет примерно таким:
T something;
while(file.read(something, sizeof(something))) {
// process your 'something'
}
это работает, потому что file.read
(как и многие члены iostream) возвращает ссылка на сам iostream. У всех из них есть перегруженный оператор, позволяющий тестировать состояние потока. Аналогично чтению из std :: cin
, while (std :: cin >> x) {...}
тоже работает.
EDIT: вам следует знайте, что тестирование или неудача могут быть одинаково ошибочными по той же причине. На странице, которую вы связали с , fail ()
возвращает, если предыдущая операция не удалась. Это означает, что перед тестированием вам необходимо выполнить чтение или другую соответствующую операцию.