Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Типичное использование потоков ввода/вывода

Читайте также:
  1. I.Себестоимость и использование продукции производителей
  2. RAID 2. Отказоустойчивый дисковый массив с использованием кода Хемминга (Hamming Code ECC).
  3. V. Обыск, связывание, взаимовыручка, использование подручных средств
  4. Анализ бизнес среды: практическое использование моделей STEP/PEST, SLEPT
  5. Бессознательный брендинг. Использование в маркетинге новейших достижений нейробиологии
  6. Биологические следы: классификация, обнаружение, изъятие и использование в раскрытии преступлений.
  7. Виды рекламы и использование рекламных средств
  8. Вопрос 2. Установление и использование структуры ВП
  9. Гадание с использованием домино
  10. Глава 5. Определение и их использование.

Хотя вы можете комбинировать классы потоков ввода/вывода многими различными способами, вы, вероятно, будете использовать несколько комбинаций. Следующий пример может быть использован как отправная точка; он показывает создание и использование типичной конфигурации ввода/вывода. Обратите внимание, что каждая конфигурация начинается с порядкового номера и заголовка, который оглавляет соответствующее объяснение в следующем за ним тексте.

//: c11:IOStreamDemo.java// Типичные конфигурации потоков ввода/вывода.import java.io.*; public class IOStreamDemo { // Выбрасывание исключения на консоль: public static void main(String[] args) throws IOException { // 1. Чтение ввода по строкам: BufferedReader in = new BufferedReader(new FileReader("IOStreamDemo.java")); String s, s2 = new String(); while((s = in.readLine())!= null) s2 += s + "\n"; in.close(); // 1b. Чтение стандартного ввода: BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter a line:"); System.out.println(stdin.readLine()); // 2. Ввод из памяти StringReader in2 = new StringReader(s2); int c; while((c = in2.read())!= -1) System.out.print((char)c); // 3. Форматированный ввод из памяти try { DataInputStream in3 = new DataInputStream(new ByteArrayInputStream(s2.getBytes())); while(true) System.out.print((char)in3.readByte()); } catch(EOFException e) { System.err.println("End of stream"); } // 4. Вывод в файл try { BufferedReader in4 = new BufferedReader(new StringReader(s2)); PrintWriter out1 = new PrintWriter(new BufferedWriter(new FileWriter("IODemo.out"))); int lineCount = 1; while((s = in4.readLine())!= null) out1.println(lineCount++ + ": " + s); out1.close(); } catch(EOFException e) { System.err.println("End of stream"); } // 5. Хранение и перекрытие данных try { DataOutputStream out2 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("Data.txt"))); out2.writeDouble(3.14159); out2.writeChars("That was pi\n"); out2.writeBytes("That was pi\n"); out2.close(); DataInputStream in5 = new DataInputStream(new BufferedInputStream(new FileInputStream("Data.txt"))); BufferedReader in5br = new BufferedReader(new InputStreamReader(in5)); // Необходимо использовать DataInputStream для данных: System.out.println(in5.readDouble()); // Теперь можно использовать "правильный" readLine(): System.out.println(in5br.readLine()); // Но выводимая строка забавна. // Строка, созданная с помощью writeBytes, в порядке: System.out.println(in5br.readLine()); } catch(EOFException e) { System.err.println("End of stream"); } // 6. Чтение/запись файлов в произвольном порядке RandomAccessFile rf = new RandomAccessFile("rtest.dat", "rw"); for(int i = 0; i < 10; i++) rf.writeDouble(i*1.414); rf.close(); rf = new RandomAccessFile("rtest.dat", "rw"); rf.seek(5*8); rf.writeDouble(47.0001); rf.close(); rf = new RandomAccessFile("rtest.dat", "r"); for(int i = 0; i < 10; i++) System.out.println("Value " + i + ": " + rf.readDouble()); rf.close(); }} ///:~

Здесь приведено описание для нумерованных разделов программы:




Дата добавления: 2015-09-11; просмотров: 22 | Поможем написать вашу работу | Нарушение авторских прав

Особый случай RuntimeException | Для чего нужно finally? | Ограничения исключений | Конструкторы | Упражнения | Список директории | Поиск и создание директориев | Ввод и вывод | Чтение из InputStream с помощью FilterInputStream | Запись в OutputStream с помощью FilterOutputStream |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав