Компьютерные книги
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 110

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 104 105 106 107 108 109 < 110 > 111 112 113 114 115 116 .. 259 >> Следующая

При успешном выполнении обеих операций работа метода завершается. Вот почему данный метод является удачным примером использования сообщений об исключительных ситуациях* Соответствующий код приведен ниже:
public int readlnt П throws IOException { if IT == null) refresh О г while (true) f try {
return Integer.parselnt(T.nextToken{));
}
catch (NoSuchElementException el) [ refresh ();
}
catch (NumberFormatException e2) {
System.out,println("Error in number, try again.");
}
I
t
)
Класс содержит интересные операторы в каждом методе числовых преобразований. При анализе введенного целого числа выполняется синтаксический разбор с помощью метода parseint из класса*оболочки integer:
return Integer .parselnt (T.nextTokert ()) ;
Однако класс Double не имеет соответствующего метода для синтаксического разбора, в связи с чем преобразование усложняется:
return Double,valueOf(item.trim()).doubleValue();
Объект item — это возвращаемая строка. Сначала мы освободим ее от пробелов посредством метода trim класса string. Затем вызовем метод Double. valueOf для преобразования строки в объект класса Double. В завершение мы извлечем объект
Структура класса Stream
245
из оболочки и преобразуем его в тип double. Очевидно, что эта операция стоит того, чтобы ее определили как типизированный метод!
Методы format используют пакет java.text, который рассматривается в следующем разделе. Рассмотрим полный текст класса stream:
Класс Stream
package javagently;
import: java.io.*; import java.util.*; import j ava.text * *;
public class Stream {
/* Класс Stream, Авторы - Дж. М. Бишоп и Б. Вородл_ Написан в мае 2000 г
* —==¦====--:=== при содействия Дж. Каасболла .
* Основан на классе Text, август 1996 г.
* Авторы - Дж. W, Бишоп и А. Мулыен.
тЬ
і
* Обеспечивает простой ввод с клавиатуры и файлов
* и форматированный вывод на монитор к в файлы.
Иг
* Конструкторы
¦*
* public Stream (InputStream in)
* public Stream (String filename, int why) ¦k
* Ввод
* public int readlnt ()
* public double readDouble О
* public String readString ?)
* public char readChar ()
¦A-
* Вывод
public void println - для Objects, String, int, double, char public void print - для Objects, String, int, double, char
public void closet)
Вывод — метода класса
/
public String format (int number, int align)
public String format (double number, int align, int frac)
private BufferedReader in; private PrintWriter out; private StringTokenizer*T; private String 5;
246
Глава 7. Форматирование
public static final int READ = 0,
WRITE = 1;
public S t ream{Iпри t S t ream i) { in = open(і) ;
)
public Stream(String filename, int how)
throws FileNotFoundException, lOException { switch[how) {
case READ: in = openffilename); break; case WRITE: out = create [filename)? break;
}
>
private BufferedReader open(InputStream in) [
return new BufferedReader(new InputStreamReader(in));
private BufferedReader open(String filename) throws FileNotFoundException { return new BufferedReader(new FileReader(filename));
}
private PrintWriter create(String filename) throws lOException { return new PrintWriter (new Fi leWr і ter (filename))
}
j
public String readLine () throws lOException { refresh {) -f return S*
}
public int readlnt 0 throws lOException { if (T==null) refresh(); while (true) { try {
return Integer.parselnt(T.nextToken f)};
}
catch (NoSuchElementException el) ( refresh ();
}
catch (NumberFormatException e2) {
System,out.println("Error in number, try again.");
}
}
}
public char readChar О throws lOException f if (T——null) refresh {); while (true) { try {
return T.nextToken{).trim{),charAt(0);
)
catch (NoSuchElementException el) {
Структура класса Stream
247
refresh О ;
}
’i
/
}
public double readDouble () throws lOException { if (T==null) refresh(); while ftrue) { try \
String item = T.nextToken();
return Double.valueOf(item.trim 0).doubleValuef);
}
catch (NoSuchElementException el} { refresh (} ;
}
catch (NumberFormatException e2) {
System, out .println ("Error in number, try again.");
%
і
•j
Y
І
\
J
public String readString {) throws lOException { if [T==null} refresh () ; while (true) ( try {
return T.nextToken ();
I
catch (NoSuchElementException el} { refresh О;
}
і
r
}
private void refresh () throws lOException {
S ~ in.readLine (};
if (S-=null) throw new EOFException();
T = new StringTokenizer (3);
}
private static DecirnalFormat N = new DecintalFormat () j private static final String spaces - " ";
Предыдущая << 1 .. 104 105 106 107 108 109 < 110 > 111 112 113 114 115 116 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Завалишин Д. "Интернетско-русский разговорник" (Web-программирование)

Заенцев И.В. "Нейронные сети: основные модели" (Web-программирование)

Владимиров А.А. "Wi-фу: «боевые» приемы взлома и защиты беспроводных сетей" (Web-программирование)

Вьейра Р. "SQL Server 2000. Программирование в 2 ч." (Web-программирование)

Веллинг Л.Т. "Разработка web приложений с помощью php и mysql" (Web-программирование)
Авторские права © 2013 ComputersBooks. Все права защищены.

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed