Главная » Java » Классы потоков Data в Java

0

 

 Для каждого интерфейса Data существует определенный поток Data. Помимо того, имеется класс RandomAccessFile, который реализует одновременно оба интерфейса Data — ввода и вывода (см. раздел 15.6.2). Каждый класс Data является расширением соответствующего класса Filter, так что потоки Data могут использоваться в целях фильтрации данных других потоков. В составе каждого класса Data есть конструкторы, в качестве параметра принимающие ссылки на другой подходящий поток ввода или вывода. Например, Фильтрацию выводимых в файл данных можно осуществить, если передать конструктору DataOutputStream ссылку на объект Fi leOutputStream. Для последующего ввода данных надлежит использовать поток DatalnputStream, построенный на основе объекта FilelnputStream. Примеры реализации соответствующих методов приведены ниже.

public  static void writeData(double[]   data,   String  file)

 throws  lOException

{

OutputStream fout = new FileoutputStream(file);

DataOutputStream out = new Dataoutputstream(fout);

 out.writelnt(data.length);

for (int i = 0; i < data.length; i++)

     outiwriteDouble(data[i]);

out.close();

}

public static double[]   readData(String file)

 throws IOException

{

 inputstream fin = new FilelnputStream(file);

DatalnputStream in = new DatalnputStream(fin); 

Double[]data = new double[in.readln ()]; 

for  (int i  = 0; i   < data.length;   i++)

    data[i]  =  in. readDouble();

in.close();

return data;

}

 

 

В теле метода writeData вначале открывается файл, в который записывается длина массива, подлежащего сохранению. Далее в цикле осуществляется вывод элементов массива. Содержимое файла может быть считано с помощью метода readData. Реализацию методов можно упростить, если воспользоваться средствами потоков Object.

 

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии