Программирование на Java

       

System


Класс System содержит набор полезных статических методов и полей. Экземпляр этого класса не может быть создан или получен.

Пожалуй, наиболее широко используемой возможностью, предоставляемой System, является стандартный вывод, доступный через переменную System.out. Ее тип – PrintStream (потоки данных будут подробно рассматриваться в лекции 15). Стандартный вывод можно перенаправить в другой поток (файл, массив байт и т.д., главное, чтобы это был объект PrintStream):

public static void main(String[] args) { System.out.println("Study Java"); try { PrintStream print = new PrintStream(new FileOutputStream("d:\\file2.txt")); System.setOut(print); System.out.println("Study well"); } catch(FileNotFoundException e) { e.printStackTrace(); } }

При запуске этого кода на экран будет выведено только

Study Java

И в файл "d:\file2.txt" будет записано

Study well

Аналогично могут быть перенаправлены стандартный ввод System.in – вызовом System.setIn(InputStream) и поток вывода сообщений об ошибках System.err – вызовом System.setErr(PrintStream) (по умолчанию все потоки – in, out, err – работают с консолью приложения).

Следующие методы класса System позволяют работать с некоторыми параметрами системы:

  • public static void runFinalizersOnExit(boolean value) – определяет, будет ли производиться вызов метода finalize() у всех объектов (у кого еще не вызывался), когда выполнение программы будет окончено (по умолчанию выставлено значение false);

  • public static native long currentTimeMillis() – возвращает текущее время; это время представляется как количество миллисекунд, прошедших с 1 января 1970 года;

  • public static String getProperty(String key) – возвращает значение свойства с именем key.

Чтобы получить все свойства, определенные в системе, можно воспользоваться следующим методом:

  • public static java.util.Properties getProperties() – возвращает объект java.util.Properties, в котором содержатся значения всех определенных системных свойств.

Метод arrayCopy(Object source, int srcPos, Object target, int trgPos, int length) предоставляет возможность быстрого копирования содержимого одного массива в другой. Первый параметр задает исходный массив, второй – номер позиции, начиная с которого брать элементы для копирования. Третий параметр – массив-"получатель", четвертый – номер позиции в нем, начиная с которого будут записываться скопированные элементы. Наконец, последний параметр задает количество элементов, которые надо скопировать. Оба массива должны быть созданы, иметь совместимые типы и достаточную длину, иначе будут сгенерированы соответствующие исключения.



Содержание раздела