
- •Глава 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. Ввод/вывод, апплеты и другие темы 303_
чены. Поэтому, чтобы воспользоваться их преимуществами (там, где это уместно, конечно), старый код, не использующий символьные потоки, должен быть модифицирован.
На самом низком уровне весь ввод/вывод все еще байтовый. Символьно-ориентированные потоки обеспечивают удобные и эффективные средства для обработки символов.
В следующих разделах представлен краткий обзор как байтовых, так и символьных потоков.
Классы байтовых потоков
Байтовые потоки определяются в двух иерархиях классов. Наверху этой иерархии — два абстрактных класса: inputstream и output stream. Каждый из этих абстрактных классов имеет несколько конкретных подклассов, которые обрабатывают различия между разными устройствами, такими как дисковые файлы, сетевые соединения и даже буферы памяти. Классы байтовых потоков показаны в табл. 12.1. Некоторые из этих классов обсуждаются далее в этом разделе. Другие описаны в Части II данной книги. Помните, чтобы использовать поточные классы, нужно импортировать пакет java.io.
Абстрактные классы inputstream и Outputstream определяют несколько ключевых методов, которые реализуются другими поточными классами. Два наиболее важных— readO и write(), которые, соответственно, читают и записывают байты данных. Оба метода объявлены как абстрактные внутри классов inputstream и Outputstream и переопределяются производными поточными классами.
Классы символьных потоков
Символьные потоки определены в двух иерархиях классов. Наверху этой иерархии два абстрактных класса: Reader и writer. Они обрабатывают потоки символов Unicode. В Java существуют несколько конкретных подклассов каждого из них. Классы символьных потоков показаны в табл. 12.2.
Абстрактные классы Reader и writer определяют несколько ключевых методов, которые реализуются другими поточными классами. Два самых важных метода — read о и write о, которые читают и записывают символы данных, соответственно. Они переопределяются производными поточными классами.
Таблица 12.1. Классы байтовых потоков
Поточный класс Значение Buf feredlnputStream Буферизированный поток ввода Buf feredOutputStream Буферизированный поток вывода |
304 Часть I. Язык Java
Таблица 12.1 (окончание)
Поточный класс Значение ByteArrayinputstream Поток ввода, который читает из байт-массива ByteArrayOutputStream Поток вывода, который записывает в байт-массив DatalnputStream Поток ввода, который содержит методы для чтения данных стандартных типов Java DataOutputstream Поток вывода, который содержит методы для записи данных стандартных типов Java Fileinputstream Поток ввода, который читает из файла FileOutputStream Поток вывода, который записывает в файл FilterlnputStream Реализует InputStream FilterOutputStream Реализует OutputStream inputstream Абстрактный класс, который описывает поточный ввод ' OutputStream Абстрактный класс, который описывает поточный вывод PipedlnputStream Канал ввода PipedOutputStream Канал вывода Printstream . Поток вывода, который поддерживает print () и println ( ) Pushbackinputstream Поток (ввода), который поддерживает однобайтовую операцию "unget", возвращающую байт в поток ввода RandomAccessFile Поддерживает ввод/вывод файла произвольного доступа SequencelnputStream Поток ввода, который является комбинацией двух или нескольких потоков ввода, которые будут читаться последовательно, один за другим |
Таблица 12.2. Классы ввода/вывода символьных потоков
Поточный класс Значение Buf feredReader Буферизированный символьный поток ввода Buf feredwriter Буферизированный символьный поток вывода CharArrayReader Поток ввода, который читает из символьного массива CharArrayWrite Выходной поток, который записывает в символьный массив FileReader Поток ввода, который читает из файла |