
- •Глава 2
- •Глава 2. Обзор языка Java 31_
- •Глава 2. Обзор языка Java
- •Глава 2. Обзор языка Java 37
- •Глава 2. Обзор языка Java 39
- •Глава 2. Обзор языка Java 41
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 43_
- •Глава 2. Обзор языка Java 45_
- •Глава 2. Обзор языка Java 47
- •Глава 2. Обзор языка Java 49_
- •Часть I. Язык Java
- •Глава 2. Обзор языка Java 57
- •Глава 3
- •Глава 3. Типы данных, переменные и массивы 53
- •Глава 3. Типы данных, переменные и массивы _ 55
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 59_
- •Глава 3. Типы данных, переменные и массивы 61_
- •Глава 3. Типы данных, переменные и массивы
- •Глава 3. Типы данных, переменные и массивы 65_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 67_
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 69_
- •Глава 3. Типы данных, переменные и массивы 71_
- •Глава 3. Типы данных, переменные и массивы 73_
- •Глава 3. Типы данных, переменные и массивы
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы _ 77_ Эта программа генерирует следующий вывод:
- •Глава 3. Типы данных, переменные и массивы 79
- •Часть I. Язык Java
- •Глава 3. Типы данных, переменные и массивы 81_
- •Глава 4
- •Глава 4. Операции 83
- •84 Часть I. Язык Java
- •Глава 4. Операции 85_
- •Глава 4. Операции 87_
- •88_ Часть I. Язык Java
- •Глава 4. Операции 89
- •Глава 4. Операции 91_
- •Глава 4. Операции 93_
- •Глава 4. Операции 95_
- •Глава 4. Операции 97_
- •Глава 4. Операции 99
- •Глава 4. Операции 101
- •Глава 4. Операции 103
- •104 Часть I, Язык Java
- •Глава 4. Операции 105
- •Глава 5
- •Глава 5, Управляющие операторы 107
- •Глава 5. Управляющие операторы 109
- •110 Часть I. Язык Java
- •Глава 5, Управляющие операторы 111
- •Глава 5. Управляющие операторы 113
- •Глава 5. Управляющие операторы
- •Глава 5. Управляющие операторы 117
- •118 Часть I. Язык Java
- •Глава 5. Управляющие операторы 119
- •Глава 5. Управляющие операторы 121
- •122 Часть I. Язык Java
- •Глава 5. Управляющие операторы 123
- •Глава 5. Управляющие операторы 125
- •Глава 5. Управляющие операторы 127
- •Глава 5. Управляющие операторы 129
- •Глава 5. Управляющие операторы
- •Глава 6
- •134 Часть I. Язык Java
- •Глава 6. Введение в классы 135
- •136 Часть I. Язык Java
- •Глава 6. Введение в классы _ 137
- •Глава 6. Введение в классы 139
- •Глава 6. Введение в классы
- •Глава 6. Введение в классы 143
- •Глава 6. Введение в классы 145
- •Глава 6. Введение в классы 147
- •Глава 6. Введение в классы 149
- •Глава 6. Введение в классы 151
- •154 Часть I. Язык Java
- •Глава 6. Введение в классы 155
- •Глава 6. Введение в классы 157
- •Глава 7
- •Глава 7. Методы и классы 159
- •Глава 7. Методы и классы . 161
- •Глава 7. Методы и классы • 163
- •164 Часть I. Язык Java
- •Глава 7. Методы и классы 165
- •Глава 7. Методы и классы 167
- •Глава 7. Методы и классы 169
- •Глава 7, Методы и классы 171-
- •Глава 7. Методы и классы 173
- •Глава 7. Методы и классы 775
- •Глава 7. Методы и классы 177
- •Глава 7. Методы и классы ' 179
- •Глава 7. Методы и классы 1_81_
- •Глава 7. Методы и классы 1_83
- •184 '• Часть I. Язык Java
- •Глава 7. Методы и классы . 185
- •Глава 7. Методы и классы 187
- •Глава 8
- •Глава 8. Наследование 191
- •Глава 8. Наследование 193
- •Глава 8, Наследование 195
- •Глава 8. Наследование 197
- •198 Часть I. Язык Java
- •Глава 8, Наследование 199
- •Глава 8. Наследование 201
- •202 Часть I. Язык Java
- •Глава 8. Наследование 203
- •Глава 8. Наследование 205
- •Глава 8. Наследование 207
- •Глава 8. Наследование 209
- •Глава 8. Наследование 211
- •Глава 8. Наследование 213
- •Глава 8. Наследование 215
- •Глава 8. Наследование 217
- •Глава 12
- •Глава 12. Ввод/вывод, апплеты и другие темы 303_
- •Глава 12. Ввод/вывод, апплеты и другие темы . 305
- •Глава 12. Ввод/вывод, алплеты и другие темы 307
- •Глава 12. Ввод/вывод, апплеты и другие темы 309
- •Глава 12. Ввод/вывод, апплеты и другие темы 311
- •Глава 12. Ввод/вывод, апплаты и другие темы 313
- •314 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 315
- •Глава 12. Ввод/вывод, апплеты и другие темы 317
- •Глава 12. Ввод/вывод, апплеты и другие темы 319
- •320 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 321
- •Глава 12. Ввод/вывод, апплеты и другие темы 323
- •324 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплеты и другие темы 325
- •326 Часть I. Язык Java
- •Глава 12. Ввод/вывод, апплегы и другие темы 327
Глава 12. Ввод/вывод, апплеты и другие темы . 305
Таблица 12.2 (окончание)
Поточный класс Значение FileWriter Выходной поток, который записывает в файл FilterReader Отфильтрованный поток ввода FilterWriter Отфильтрованный поток вывода inputstreamReader Поток ввода, который переводит байты в символы LineNumberReader Поток ввода, который считает строки OutputstreamWriter Поток ввода, который переводит символы в байты PipedReader Канал ввода PipedWriter Канал вывода Printwriter Поток вывода, который поддерживает print ( ) и println ( ) PushbackReader Поток ввода, возвращающий символы в поток ввода Reader Абстрактный класс, который описывает символьный поток ввода StringReader Поток ввода, который читает из строки stringWriter Поток вывода, который записывает в строку Writer Абстрактный класс, который описывает символьный поток вывода |
Предопределенные потоки
Как известно, все программы Java автоматически импортируют пакет java.iang. Этот пакет определяет класс с именем system, инкапсулирующий некоторые аспекты исполнительной среды Java. Например, используя некоторые из его методов, вы можете получить текущее время и параметры настройки различных свойств, связанных с системой. Класс system содержит также три предопределенные поточные переменные in, out и err. Эти поля объявлены в System со спецификаторами public и static. Это означает, что они могут использоваться любой другой частью вашей программы, и причем без ссылки на конкретный system-объект.
Объект System, out называют потоком стандартного вывода. По умолчанию с ним связана консоль. На объект system, in ссылаются как на стандартный ввод, который по умолчанию связан с клавиатурой. К объекту System, err обращаются как к стандартному потоку ошибок, который по умолчанию также связан с консолью. Однако эти потоки могут быть переназначены на любое совместимое устройство ввода/вывода.
306 Часть /. Язык Java
System, in — ЭТО объект ТИПЗ InputStream; System, out И System, err — объек-
ты типа Printstream. Это байтовые потоки, хотя они обычно используются, чтобы читать и записывать символы с консоли и на консоль. Однако вы можете упаковать их в символьные потоки, если пожелаете.
В примерах предыдущих глав использовался объект system.out. Аналогичным образом вы можете использовать и system, err. Как объясняется в следующем разделе, использование system, in немного сложнее.
Чтение консольного ввода
В Java 1.0 единственный способ выполнения консольного ввода состоял в применении байтового потока, и старые коды, которые использует этот подход, еще существуют. В настоящее время использование байтового потока для чтения консольного ввода все еще технически возможно, но это может потребовать применения исключенного метода, и такой подход не рекомендуется. Предпочтительный способ чтения консольного ввода для Java 2 заключается в использовании символьного потока, который упрощает интернационализацию и поддержку программы.
Java нэ имеет обобщенного метода консольного ввода, который соответствует стандартной С-функции scanf о или операциям ввода C++.
Консольный ввод в Java выполняется с помощью считывания из объекта system, in. Чтобы получить символьный поток, который присоединен к консоли, вы переносите ("упаковываете") system, in в объект типа BufferedReader. Класс Buf feredReader поддерживает буферизированный входной поток. Обычно используется следующий его конструктор:
BufferedReader(Reader inpufcReader)
где inputReader — поток, который связан с создающимся экземпляром класса BufferedReader. Reader — абстрактный класс. Один из его конкретных подклассов — это inputstreamReader, который преобразовывает байты в символы. Чтобы ПОЛУЧИТЬ InputStreamReader-объект, который связан С System, in,
используйте следующий конструктор:
InputstreamReader(Inputstream inputstream)
Поскольку System, in ссылается на объект типа inputstream, его можно использовать в качестве параметра inputstream. Объединив все это вместе, следующая строка кода создает объект класса BufferedReader, который связан с клавиатурой:
BufferedReader br = new BufferedReader(new InputstreamReader(System.in));