Поддержка JavaScript отключена
SBP-Program | |||||
На главную -> Java |   | ||||
  |
Под потоком понимают последовательность байтов. Входящий поток переносит данные из источника в программу, исходящий – наоборот. Байтовые потоки (классы) происходят от InputStream и OutputStream. Один байт считывается в единицу времени.После окончания работы потока, его обязательно нужно закрыть. Байтовые потоки обслуживают ввод/вывод низкого уровня. В этих случаях их и следует использовать. Для работы с символами исползуют символьные потоки (character stream). Байтовые и символьные потоки можно использовать совместно. Байтовые отвечают за загрузку в приложение последовательности байтов, а символьные потоки заняты преобразованием между байтами и символами. Символьные потоки способны считывать сразу целую строку. Потоки можно буферизировать, т.е. чтение или запись выполнять не прямо, что повышает скорость. Сначала загрузка идёт в буфер, когда он будет заполнен, то из него запрашивается сразу весь объём информации.Чтобы использовать буферизированные потоки, надо использовать обычные потоки как аргумент буферизированных. Файловый ввод/вывод осуществляется классами FileInputStream и FileOutputStream. Для текстовых файлов используют классы FileReader и FileWriter. В примере создадим файл InputFile, загрузим в него текст, выгрузим содержимое этого файла в другой файл OutputFile. В примере сначала создаём файл InputFile.doc в конструкторе: fw = new FileWriter(«H:\InputFile.doc», false);
второй аргумент говорит о том, что файл будет переписан заново, если этот аргумент равен true, то запись добавляется в конец файла. Теперь в файл можно добавить строку: fw.write(«This is a new file.»);
Файл готов. Обязательно следует закрыть поток FileWriter. Делаем это в блоке finally. Далее рассмотрим порядок использования потоков FileInputStream и FileOutputStream. Читаем инфомацию из только что созданного файла так: ism = new FileInputStream(«H:\InputFile.doc»);
Создаём новый файл OutputFile.doc для перекачивания в него информации из InputFile.doc: os = new FileOutputStream(«H:\OutputFile.doc»);
Переброску информации делаем в цикле: int cur;while((cur = ism.read()) != -1){ os.write(cur);}
где -1 указывает на достижение конца потока. Обязательно следует закрыть потоки FileInputStream и FileOutputStream. Делаем это в блоке finally: fаinally { if (ism != null) { ism.close(); } if (os != null) { os.close(); }}
Программирование |
  | |||
 
|
 
|
||||