HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Ключевые компоненты языка</a></li>
1 <ul><li><a>Ключевые компоненты языка</a></li>
2 <li><a>Класс - это…</a></li>
2 <li><a>Класс - это…</a></li>
3 <li><a>Файл - определение</a></li>
3 <li><a>Файл - определение</a></li>
4 <li><a>Методы файлов</a></li>
4 <li><a>Методы файлов</a></li>
5 <li><a>Создание</a><ul><li><a>С классом java.io.File</a></li>
5 <li><a>Создание</a><ul><li><a>С классом java.io.File</a></li>
6 <li><a>Java.io.FileOutputStream в помощь</a></li>
6 <li><a>Java.io.FileOutputStream в помощь</a></li>
7 <li><a>Java NIO</a></li>
7 <li><a>Java NIO</a></li>
8 <li><a>Временные документации</a></li>
8 <li><a>Временные документации</a></li>
9 </ul></li>
9 </ul></li>
10 <li><a>Копирование</a></li>
10 <li><a>Копирование</a></li>
11 <li><a>Скачивание</a></li>
11 <li><a>Скачивание</a></li>
12 <li><a>Чтение</a></li>
12 <li><a>Чтение</a></li>
13 <li><a>Курсы - лучшее решение для программистов</a></li>
13 <li><a>Курсы - лучшее решение для программистов</a></li>
14 </ul><p><strong>Java</strong>- перспективный язык программирования, который имеет несколько видов в своем семействе. В основном используется для веб-приложений, браузерного софта. Но и обычные программы/игры с его помощью можно создавать без существенных затруднений.</p>
14 </ul><p><strong>Java</strong>- перспективный язык программирования, который имеет несколько видов в своем семействе. В основном используется для веб-приложений, браузерного софта. Но и обычные программы/игры с его помощью можно создавать без существенных затруднений.</p>
15 <p>Основной принцип Джавы - меньше кодить, больше делать. В процессе работы программисты будут использовать разнообразные function. Примеры - циклы, аннотации, методы, классы. Отдельное внимание рекомендуется уделить так называемым файлам. Они задействуются в сложных проектах. Особо полезны при работе с каталогами и большими объемами информации. Именно о них пойдет речь в данной статье.</p>
15 <p>Основной принцип Джавы - меньше кодить, больше делать. В процессе работы программисты будут использовать разнообразные function. Примеры - циклы, аннотации, методы, классы. Отдельное внимание рекомендуется уделить так называемым файлам. Они задействуются в сложных проектах. Особо полезны при работе с каталогами и большими объемами информации. Именно о них пойдет речь в данной статье.</p>
16 <h2>Ключевые компоненты языка</h2>
16 <h2>Ключевые компоненты языка</h2>
17 <p>Трудно представить пользователя, который не знал бы, что такое файл. Это - своеобразный документ, в котором хранится та или иная информация. В случае с программированием ситуация обстоит несколько иначе. Но перед тем, как изучать соответствующее направление, важно выяснить, какие ключевые компоненты имеет Java. С ними разработчики контактируют чаще всего.</p>
17 <p>Трудно представить пользователя, который не знал бы, что такое файл. Это - своеобразный документ, в котором хранится та или иная информация. В случае с программированием ситуация обстоит несколько иначе. Но перед тем, как изучать соответствующее направление, важно выяснить, какие ключевые компоненты имеет Java. С ними разработчики контактируют чаще всего.</p>
18 <p>К таковым относят:</p>
18 <p>К таковым относят:</p>
19 <ol><li>Классы и библиотеки. За счет оных обеспечивается function: логирование, многопоточность, рефлексия, сетевая работа, безопасность и так далее.</li>
19 <ol><li>Классы и библиотеки. За счет оных обеспечивается function: логирование, многопоточность, рефлексия, сетевая работа, безопасность и так далее.</li>
20 <li>Инструментарий базового типа, необходимый для запуска и написания приложений.</li>
20 <li>Инструментарий базового типа, необходимый для запуска и написания приложений.</li>
21 <li>Средства, задействованные при развертывании и автозапуске утилит.</li>
21 <li>Средства, задействованные при развертывании и автозапуске утилит.</li>
22 <li>Инструменты для создания фронтенда (GUI). Тут принято подразумевать классы библиотек Swing, Java2D, JavaFX.</li>
22 <li>Инструменты для создания фронтенда (GUI). Тут принято подразумевать классы библиотек Swing, Java2D, JavaFX.</li>
23 <li>Библиотеки работы с базами данных, включая удаленные коммуникации (JNDI, RMI, Java RMI-IIOP и так далее).</li>
23 <li>Библиотеки работы с базами данных, включая удаленные коммуникации (JNDI, RMI, Java RMI-IIOP и так далее).</li>
24 </ol><p>Классов в Java более нескольких тысяч. Они предусматривают так называемые файлы и работу с оными.</p>
24 </ol><p>Классов в Java более нескольких тысяч. Они предусматривают так называемые файлы и работу с оными.</p>
25 <h2>Класс - это…</h2>
25 <h2>Класс - это…</h2>
26 <p>Класс в программировании - основа. Отвечает за различные function кода. Представляет собой своеобразный шаблон для того или иного объекта. Определяет, каким образом будет выглядеть элемент программного кода. Также предусматривает его function.</p>
26 <p>Класс в программировании - основа. Отвечает за различные function кода. Представляет собой своеобразный шаблон для того или иного объекта. Определяет, каким образом будет выглядеть элемент программного кода. Также предусматривает его function.</p>
27 <p>Каждый объект в Java принадлежит к тому или иному классу. Данный элемент имеет так называемые методы. Так называют function выбранного class. Простыми словами - то, что умеют делать элементы программного кода. Перед тем, как изучать файлы более подробно, программист должен уметь работать с классами и его методами. В противном случае не исключена путаница и ошибки.</p>
27 <p>Каждый объект в Java принадлежит к тому или иному классу. Данный элемент имеет так называемые методы. Так называют function выбранного class. Простыми словами - то, что умеют делать элементы программного кода. Перед тем, как изучать файлы более подробно, программист должен уметь работать с классами и его методами. В противном случае не исключена путаница и ошибки.</p>
28 <h2>Файл - определение</h2>
28 <h2>Файл - определение</h2>
29 <p>Все приложения, игры и утилиты обладают возможностью записи информации того или иного типа в так называемые файлы. File - своеобразное хранилище данных. В компьютерах оно может быть:</p>
29 <p>Все приложения, игры и утилиты обладают возможностью записи информации того или иного типа в так называемые файлы. File - своеобразное хранилище данных. В компьютерах оно может быть:</p>
30 <ul><li>текстовым;</li>
30 <ul><li>текстовым;</li>
31 <li>графическим;</li>
31 <li>графическим;</li>
32 <li>звуковым.</li>
32 <li>звуковым.</li>
33 </ul><p>В программировании файл выступает в качестве самостоятельного объекта. Для работы с оным Java предусматривает класс утилитного характера - java.nio.file.Files. Он имеет методы для всех ситуаций, которые только могут возникнуть. Работают они с элементами типа Path.</p>
33 </ul><p>В программировании файл выступает в качестве самостоятельного объекта. Для работы с оным Java предусматривает класс утилитного характера - java.nio.file.Files. Он имеет методы для всех ситуаций, которые только могут возникнуть. Работают они с элементами типа Path.</p>
34 <p>Обработка файлов в Джаве нужна для того, чтобы выполнять те или иные задачи. Пример:</p>
34 <p>Обработка файлов в Джаве нужна для того, чтобы выполнять те или иные задачи. Пример:</p>
35 <ul><li>запись информации;</li>
35 <ul><li>запись информации;</li>
36 <li>корректировка данных;</li>
36 <li>корректировка данных;</li>
37 <li>чтение.</li>
37 <li>чтение.</li>
38 </ul><p>Все это помогает создавать уникальные и сложные приложения без существенных хлопот.</p>
38 </ul><p>Все это помогает создавать уникальные и сложные приложения без существенных хлопот.</p>
39 <h2>Методы файлов</h2>
39 <h2>Методы файлов</h2>
40 <p>Методов (function) у файлов очень много. Они позволяют решать всевозможные задачи, независимо от сложности оных. Но для начала рекомендуется выучить ключевые варианты. Остальные данные можно всегда посмотреть в Сети или иных источниках информации.</p>
40 <p>Методов (function) у файлов очень много. Они позволяют решать всевозможные задачи, независимо от сложности оных. Но для начала рекомендуется выучить ключевые варианты. Остальные данные можно всегда посмотреть в Сети или иных источниках информации.</p>
41 <p>Обратить внимание рекомендуется на следующие function:</p>
41 <p>Обратить внимание рекомендуется на следующие function:</p>
42 <ul><li>createFile - создание нового файла;</li>
42 <ul><li>createFile - создание нового файла;</li>
43 <li>createDirectory - отвечает за создание директории;</li>
43 <li>createDirectory - отвечает за создание директории;</li>
44 <li>createDirectories - создаются несколько директорий;</li>
44 <li>createDirectories - создаются несколько директорий;</li>
45 <li>createTempleFile - временный файл;</li>
45 <li>createTempleFile - временный файл;</li>
46 <li>createTempleDirectory - временная директория;</li>
46 <li>createTempleDirectory - временная директория;</li>
47 <li>void delete - удаление документа/директории, если соответствующий элемент является пустым;</li>
47 <li>void delete - удаление документа/директории, если соответствующий элемент является пустым;</li>
48 <li>copy - копирование;</li>
48 <li>copy - копирование;</li>
49 <li>move - перемещение;</li>
49 <li>move - перемещение;</li>
50 <li>isDirectory - проверка на то, что указанный путь - директория, а не файл;</li>
50 <li>isDirectory - проверка на то, что указанный путь - директория, а не файл;</li>
51 <li>isRegularFile - проверка, что объект является файлом;</li>
51 <li>isRegularFile - проверка, что объект является файлом;</li>
52 <li>exist - проверка на наличие пути к указанному элементу;</li>
52 <li>exist - проверка на наличие пути к указанному элементу;</li>
53 <li>long size - возвращение размера;</li>
53 <li>long size - возвращение размера;</li>
54 <li>byte [] readAllBytes - возврат содержимого в виде массива в байт;</li>
54 <li>byte [] readAllBytes - возврат содержимого в виде массива в байт;</li>
55 <li>String readString - возврат в виде строчки;</li>
55 <li>String readString - возврат в виде строчки;</li>
56 <li>List &lt;String&gt; readAllLines - возврат информации в виде списка строк;</li>
56 <li>List &lt;String&gt; readAllLines - возврат информации в виде списка строк;</li>
57 <li>write - запись в массив байт.</li>
57 <li>write - запись в массив байт.</li>
58 </ul><p>Реализовывать имеющиеся function в Джаве не составляет существенного труда. Достаточно знать несколько основных моментов работы с files.</p>
58 </ul><p>Реализовывать имеющиеся function в Джаве не составляет существенного труда. Достаточно знать несколько основных моментов работы с files.</p>
59 <h2>Создание</h2>
59 <h2>Создание</h2>
60 <p>Для того, чтобы создать документ, необходимо передать его в объект под названием File. Справиться с поставленной задачей удается несколькими способами. А именно, через:</p>
60 <p>Для того, чтобы создать документ, необходимо передать его в объект под названием File. Справиться с поставленной задачей удается несколькими способами. А именно, через:</p>
61 <ul><li>абсолютный путь;</li>
61 <ul><li>абсолютный путь;</li>
62 <li>пропись только имени соответствующего документа;</li>
62 <li>пропись только имени соответствующего документа;</li>
63 <li>ссылку на относительный путь (объект будет искать files в корневых директориях приложения).</li>
63 <li>ссылку на относительный путь (объект будет искать files в корневых директориях приложения).</li>
64 </ul><p>Во время создания программисту придется задействовать свойство системы file.separator. Оно помогает сделать приложение независимым от платформы.</p>
64 </ul><p>Во время создания программисту придется задействовать свойство системы file.separator. Оно помогает сделать приложение независимым от платформы.</p>
65 <h3>С классом java.io.File</h3>
65 <h3>С классом java.io.File</h3>
66 <p>Первый вариант function для создания документа - это задействование class java.io.File. Метод - File.createNewFile(). Возвращает данный вариант логическое значение:</p>
66 <p>Первый вариант function для создания документа - это задействование class java.io.File. Метод - File.createNewFile(). Возвращает данный вариант логическое значение:</p>
67 <ul><li>истина - когда документ выполняется;</li>
67 <ul><li>истина - когда документ выполняется;</li>
68 <li>ложь - file уже есть или операция не может по той или иной причине быть открыта.</li>
68 <li>ложь - file уже есть или операция не может по той или иной причине быть открыта.</li>
69 </ul><p>Также при невозможности создания происходит генерация исключения java.io. IOException. Если в процессе путь не является абсолютным, происходит поиск оного в корневых проектных каталогах. Вот пример создания документа:</p>
69 </ul><p>Также при невозможности создания происходит генерация исключения java.io. IOException. Если в процессе путь не является абсолютным, происходит поиск оного в корневых проектных каталогах. Вот пример создания документа:</p>
70 <p>Приведенный вариант помогает не только создавать. Здесь не будет осуществляться запись содержимого.</p>
70 <p>Приведенный вариант помогает не только создавать. Здесь не будет осуществляться запись содержимого.</p>
71 <h3>Java.io.FileOutputStream в помощь</h3>
71 <h3>Java.io.FileOutputStream в помощь</h3>
72 <p>Следующая function, отвечающая за new file - это OutputStream. При задействовании соответствующего варианта можно не только создавать, но и производить сразу непосредственную запись информации. Программеру предстоит работать с классом потока байтов. При записи сведений происходит преобразование в оные, только после - сохранение.</p>
72 <p>Следующая function, отвечающая за new file - это OutputStream. При задействовании соответствующего варианта можно не только создавать, но и производить сразу непосредственную запись информации. Программеру предстоит работать с классом потока байтов. При записи сведений происходит преобразование в оные, только после - сохранение.</p>
73 <p>Вот пример кода:</p>
73 <p>Вот пример кода:</p>
74 <p>Данная function отлично подходит для создания текстовых документов. За счет OutputStream.write() происходит не только возникновение рассматриваемого элемента, но и запись в него.</p>
74 <p>Данная function отлично подходит для создания текстовых документов. За счет OutputStream.write() происходит не только возникновение рассматриваемого элемента, но и запись в него.</p>
75 <h3>Java NIO</h3>
75 <h3>Java NIO</h3>
76 <p>Files.Write - один из лучших function для создания документа. Он является наиболее подходящим в программировании. За закрытие ресурсов ввода-вывода тут беспокоиться нет никой необходимости.</p>
76 <p>Files.Write - один из лучших function для создания документа. Он является наиболее подходящим в программировании. За закрытие ресурсов ввода-вывода тут беспокоиться нет никой необходимости.</p>
77 <p>Особенности приема:</p>
77 <p>Особенности приема:</p>
78 <ul><li>каждая строчка - последовательность символов, установленная по тем или иным принципам;</li>
78 <ul><li>каждая строчка - последовательность символов, установленная по тем или иным принципам;</li>
79 <li>запись происходит последовательно (каждая string);</li>
79 <li>запись происходит последовательно (каждая string);</li>
80 <li>строчка завершается разделением строчек платформы.</li>
80 <li>строчка завершается разделением строчек платформы.</li>
81 </ul><p>За счет метода public static Path createFile (Path path, FileAttribute&lt;?&gt;…attrs) throws IOException производится creating нового пустого документа. Если он уже имеет место, на экране выведется сообщение об ошибке. В качестве параметров выступают:</p>
81 </ul><p>За счет метода public static Path createFile (Path path, FileAttribute&lt;?&gt;…attrs) throws IOException производится creating нового пустого документа. Если он уже имеет место, на экране выведется сообщение об ошибке. В качестве параметров выступают:</p>
82 <ul><li>путь - это путь, используемый для непосредственного создания;</li>
82 <ul><li>путь - это путь, используемый для непосредственного создания;</li>
83 <li>attrs - необязательный перечень атрибутов, атомарно устанавливаемых при creating.</li>
83 <li>attrs - необязательный перечень атрибутов, атомарно устанавливаемых при creating.</li>
84 </ul><h3>Временные документации</h3>
84 </ul><h3>Временные документации</h3>
85 <p>В Java есть function, отвечающая за временные документации. Применяются они в различных сценариях. Чаще всего встречаются в модульных тестах, когда не хочется сохранять итоговые результаты.</p>
85 <p>В Java есть function, отвечающая за временные документации. Применяются они в различных сценариях. Чаще всего встречаются в модульных тестах, когда не хочется сохранять итоговые результаты.</p>
86 <p>При creating временного документа, используют один из двух методов:</p>
86 <p>При creating временного документа, используют один из двух методов:</p>
87 <ol><li>Создание файла в Java через createTempleFile. В каталоге будет создан документ tmp.</li>
87 <ol><li>Создание файла в Java через createTempleFile. В каталоге будет создан документ tmp.</li>
88 </ol><p>2. С применением NIO.</p>
88 </ol><p>2. С применением NIO.</p>
89 <p>Но это - только начало работы. Документы можно загружать, копировать и считывать. За каждую манипуляцию отвечает отдельная function.</p>
89 <p>Но это - только начало работы. Документы можно загружать, копировать и считывать. За каждую манипуляцию отвечает отдельная function.</p>
90 <h2>Копирование</h2>
90 <h2>Копирование</h2>
91 <p>Класс java.io.File не имеет ни одного метода, который поможет скопировать документацию их одного места в другое. Но это не значит, что справиться с поставленной задачей не удается. Существуют различные приемы, помогающие добиться желаемого результата:Использование потоков. Самый популярный и распространенный подход. Сначала нужно создать два документа (что и куда переносить), после - InputStream от источника. Его записывают через OutputStream.</p>
91 <p>Класс java.io.File не имеет ни одного метода, который поможет скопировать документацию их одного места в другое. Но это не значит, что справиться с поставленной задачей не удается. Существуют различные приемы, помогающие добиться желаемого результата:Использование потоков. Самый популярный и распространенный подход. Сначала нужно создать два документа (что и куда переносить), после - InputStream от источника. Его записывают через OutputStream.</p>
92 <ol><li>FileChannel в помощь. Еще одна function - fileChannel. Данный шаблон имеет метод transferFrom(). Отличается от остальных более быстрой работой.</li>
92 <ol><li>FileChannel в помощь. Еще одна function - fileChannel. Данный шаблон имеет метод transferFrom(). Отличается от остальных более быстрой работой.</li>
93 </ol><p>2. Apache Commons. Можно использоваться Apache Commons с классом FileUtils. В этом случае происходит копирование через function под названием copyFile. Прием удобен, если программист использует Апачи в итоговой утилите.</p>
93 </ol><p>2. Apache Commons. Можно использоваться Apache Commons с классом FileUtils. В этом случае происходит копирование через function под названием copyFile. Прием удобен, если программист использует Апачи в итоговой утилите.</p>
94 <p>3. Отдельный class. У Java так называемое копирование файлов, начиная с 7 версии среды программирования, предусматривает отдельный класс с названием File. Метод - copy().</p>
94 <p>3. Отдельный class. У Java так называемое копирование файлов, начиная с 7 версии среды программирования, предусматривает отдельный класс с названием File. Метод - copy().</p>
95 <p>4. Опытные разработчики уверяют - самым быстрым вариантом является потоковый прием. Эта function реализовывается при работе с файлами без существенных затруднений. Не требует дополнительного контента.</p>
95 <p>4. Опытные разработчики уверяют - самым быстрым вариантом является потоковый прием. Эта function реализовывается при работе с файлами без существенных затруднений. Не требует дополнительного контента.</p>
96 <h2>Скачивание</h2>
96 <h2>Скачивание</h2>
97 <p>Копирование файлов в языке Java - не такая уж и трудная function. Разработчикам в процессе коддинга может потребоваться загрузка соответствующего документа, а также его скачивание.</p>
97 <p>Копирование файлов в языке Java - не такая уж и трудная function. Разработчикам в процессе коддинга может потребоваться загрузка соответствующего документа, а также его скачивание.</p>
98 <p>Downloading - одна из операций, с которой сталкивается даже рядовой пользователь. Особенно тогда, когда речь заходит о посещении веб-сайтов. Стандартные средства Джавы позволяют загрузить документацию по его адресу в Сети. И не важно, на каком именно сервере расположен оный.</p>
98 <p>Downloading - одна из операций, с которой сталкивается даже рядовой пользователь. Особенно тогда, когда речь заходит о посещении веб-сайтов. Стандартные средства Джавы позволяют загрузить документацию по его адресу в Сети. И не важно, на каком именно сервере расположен оный.</p>
99 <p>Для реализации поставленной задачи используют несколько способов:</p>
99 <p>Для реализации поставленной задачи используют несколько способов:</p>
100 <ul><li>NIO Channels;</li>
100 <ul><li>NIO Channels;</li>
101 <li>InputStream.</li>
101 <li>InputStream.</li>
102 </ul><p>Это - пример кода, позволяющий try download файл из интернета. Весьма полезная function для программистов.</p>
102 </ul><p>Это - пример кода, позволяющий try download файл из интернета. Весьма полезная function для программистов.</p>
103 <h2>Чтение</h2>
103 <h2>Чтение</h2>
104 <p>Еще одна функция - чтение. Рассмотреть его стоит на наглядном примере. Сначала будет создан статистический метод для записи в файл с названием Write в классе FileWorker:</p>
104 <p>Еще одна функция - чтение. Рассмотреть его стоит на наглядном примере. Сначала будет создан статистический метод для записи в файл с названием Write в классе FileWorker:</p>
105 <p>Для чтения документа важно использовать следующий код:</p>
105 <p>Для чтения документа важно использовать следующий код:</p>
106 <p>StringBuilder отличается от обычного String. А именно, следующими моментами:</p>
106 <p>StringBuilder отличается от обычного String. А именно, следующими моментами:</p>
107 <ul><li>при добавлении текста в "билдер" он не пересоздается - "стринг" пересоздает сам себя;</li>
107 <ul><li>при добавлении текста в "билдер" он не пересоздается - "стринг" пересоздает сам себя;</li>
108 <li>при отсутствии файла метод выдаст Exception.</li>
108 <li>при отсутствии файла метод выдаст Exception.</li>
109 </ul><p>Ничего трудного, особенно для тех, кто уже имел дело с Java.</p>
109 </ul><p>Ничего трудного, особенно для тех, кто уже имел дело с Java.</p>
110 <h2>Курсы - лучшее решение для программистов</h2>
110 <h2>Курсы - лучшее решение для программистов</h2>
111 <p>Для того, чтобы полноценно освоить загрузку файлов в Java, а также работу с этими элементами и function того или иного типа, важно изучать не только наглядные примеры, но и теоретические данные. В интернете полно информации по соответствующим направлениям. Только новичкам бывает трудно отыскать что-то "для чайников", с нуля. Да и продвинутые разработчики нередко не могут обнаружить среди огромного количества информации то, что хотят.</p>
111 <p>Для того, чтобы полноценно освоить загрузку файлов в Java, а также работу с этими элементами и function того или иного типа, важно изучать не только наглядные примеры, но и теоретические данные. В интернете полно информации по соответствующим направлениям. Только новичкам бывает трудно отыскать что-то "для чайников", с нуля. Да и продвинутые разработчики нередко не могут обнаружить среди огромного количества информации то, что хотят.</p>
112 <p>На помощь приходят специализированные курсы. Их загрузка на устройство не требуется. Уроки могут проходить как очно/заочно, так и дистанционно.</p>
112 <p>На помощь приходят специализированные курсы. Их загрузка на устройство не требуется. Уроки могут проходить как очно/заочно, так и дистанционно.</p>
113 <p>При помощи обучающих курсов пользователь сможет изучить function в Джаве, а также:</p>
113 <p>При помощи обучающих курсов пользователь сможет изучить function в Джаве, а также:</p>
114 <ul><li>как осуществлять import java file на серверы;</li>
114 <ul><li>как осуществлять import java file на серверы;</li>
115 <li>принципы работы с документами;</li>
115 <li>принципы работы с документами;</li>
116 <li>основы программирования на выбранном языке;</li>
116 <li>основы программирования на выбранном языке;</li>
117 <li>секреты, помогающие ускорить и улучить работу.</li>
117 <li>секреты, помогающие ускорить и улучить работу.</li>
118 </ul><p>В конце обучения выдается сертификат установленного образца. Можно выбрать узкую специализацию и уровень сложности. Поэтому изучение function и files не доставит хлопот даже тем, кто недавно познакомился с компьютерной техникой.</p>
118 </ul><p>В конце обучения выдается сертификат установленного образца. Можно выбрать узкую специализацию и уровень сложности. Поэтому изучение function и files не доставит хлопот даже тем, кто недавно познакомился с компьютерной техникой.</p>
119 <a></a>
119 <a></a>