Часто нужно превратить серию кадров в видео. Java отлично подходит для того, чтобы управлять этим процессом и автоматизировать вызов
ffmpeg.В этом посте:
• Формируем команду;
• Запускаем процесс;
• Ждём завершения работы.
Такой подход удобно использовать в пайплайнах рендеринга, всё работает быстро и просто.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤4👍3
В Java строки неизменяемы, и для работы с ними есть десятки встроенных методов.
На картинке базовые и самые используемые для поиска, модификации, работа с регистром и регулярками, преобразованием
Сохрани себе что бы не потерять!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥4😁1
Создание HTML-файла с таблицей данных!
HTML удобно использовать, когда нужно красиво представить данные. Java может собрать полноценную таблицу и сохранить её как файл, который откроется в любом браузере.
Подготавливаем данные для таблицы:
Создаём базовый каркас HTML-страницы:
Добавляем строки таблицы, первая строка будет заголовком:
Закрываем HTML-структуру:
Сохраняем готовый HTML в файл:
🔥 В результате появляется файл
👉 Java Ready | #практика
HTML удобно использовать, когда нужно красиво представить данные. Java может собрать полноценную таблицу и сохранить её как файл, который откроется в любом браузере.
Подготавливаем данные для таблицы:
var rows = java.util.List.of(
new String[]{"Имя", "Возраст", "Город"},
new String[]{"Alice", "22", "Paris"},
new String[]{"Bob", "30", "Berlin"}
);
Создаём базовый каркас HTML-страницы:
var sb = new StringBuilder();
sb.append("""
<!DOCTYPE html>
<html><head><meta charset="UTF-8">
<style>table,td,th{border:1px solid #000;border-collapse:collapse;padding:4px;}</style>
</head><body><table>
""");
Добавляем строки таблицы, первая строка будет заголовком:
for (int i = 0; i < rows.size(); i++) {
var r = rows.get(i);
sb.append("<tr>");
for (var cell : r) {
var tag = (i == 0) ? "th" : "td";
sb.append("<").append(tag).append(">")
.append(cell)
.append("</").append(tag).append(">");
}
sb.append("</tr>");
}Закрываем HTML-структуру:
sb.append("</table></body></html>");Сохраняем готовый HTML в файл:
java.nio.file.Files.writeString(
java.nio.file.Path.of("report.html"),
sb.toString()
);
🔥 В результате появляется файл
report.html, таблица с данными, которую можно открыть в браузере или отправить в отчёте.Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Для мониторинга сервисов или автоматизации бывает важно быстро понять, сайт отвечает или нет. С современным
HttpClient это можно сделать в несколько строк, отправить запрос, получить код ответа и обработать таймауты.В этом посте:
• Создаём HttpClient и отправляем запрос;
• Получаем статус доступности сайта;
• Добавляем таймаут для медленных сервисов.
Такой способ подходит для утилит, CI/CD, мониторинга и любых скриптов, работающих с внешними API.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤6👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Faker — позволяет легко вставлять случайные имена, адреса, номера телефонов, даты и другие данные прямо в ваш код.
Очень удобно при разработке и тестировании, особенно если нужно наполнить макеты реалистичными значениями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥3😁1
Создаём ZIP-архив из нескольких файлов!
Иногда нужно собрать несколько файлов в один архив. Java умеет делать ZIP без сторонних библиотек только стандартный пакет
Готовим список файлов, которые нужно упаковать:
Указываем имя будущего ZIP-архива и путь к нему:
Открываем поток для записи ZIP-архива:
Добавляем каждый файл в архив как отдельную запись:
Закрываем архив и сообщаем пользователю о результате:
🔥 В итоге получаем
👉 Java Ready | #практика
Иногда нужно собрать несколько файлов в один архив. Java умеет делать ZIP без сторонних библиотек только стандартный пакет
java.util.zip. Достаточно перечислить файлы, открыть поток и записать их в архив по очереди.Готовим список файлов, которые нужно упаковать:
var files = java.util.List.of(
"notes.txt",
"image.png",
"data.json"
);
Указываем имя будущего ZIP-архива и путь к нему:
var zipPath = java.nio.file.Path.of("archive.zip");Открываем поток для записи ZIP-архива:
var zip = new java.util.zip.ZipOutputStream(
java.nio.file.Files.newOutputStream(zipPath)
);
Добавляем каждый файл в архив как отдельную запись:
for (var name : files) {
var path = java.nio.file.Path.of(name);
zip.putNextEntry(new java.util.zip.ZipEntry(path.getFileName().toString()));
java.nio.file.Files.copy(path, zip);
zip.closeEntry();
}Закрываем архив и сообщаем пользователю о результате:
zip.close();
System.out.println("Готово! Файлы упакованы в " + zipPath);
🔥 В итоге получаем
archive.zip, в котором лежат все указанные файлы.Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤5🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт с огромной коллекцией задач по программированию, от самых простых до тех, что реально заставят подумать.
Учиться можно на абсолютно любом языке. Отличный способ подтянуть логику, научиться писать аккуратный код и подготовиться к собесам.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6🤝5
Получение хоста и локального IP
Когда нужно узнать имя машины или её локальный IP, класс
Получаем информацию о текущем устройстве:
Имя хоста:
Локальный IP-адрес машины:
🔥 Часто используется для логирования, настройки сетевых сервисов, диагностики и внутренних API.
👉 Java Ready | #совет
Когда нужно узнать имя машины или её локальный IP, класс
InetAddress делает это в один вызов.Получаем информацию о текущем устройстве:
InetAddress host = InetAddress.getLocalHost();
Имя хоста:
System.out.println("Имя хоста: " + host.getHostName());Локальный IP-адрес машины:
System.out.println("IP-адрес: " + host.getHostAddress());🔥 Часто используется для логирования, настройки сетевых сервисов, диагностики и внутренних API.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤5🔥4
Когда нужно генерировать уникальные значения или надёжные случайные числа, лучше использовать более мощные инструменты, чем просто new Random(). Они обеспечивают большую надёжность и безопасность.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤7👍6🤝1
Микросервисная архитектура это подход, при котором приложения делятся на независимые сервисы, каждый из которых выполняет свою задачу.
На картинке собраны основные компоненты для создания микросервисов, базы данных, брокеры сообщений, языки программирования, мониторинг, контейнеризация и безопасность.
Сохрани, чтобы всегда быть в курсе!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥7👍5
Конвертация текста в морзянку!
Морзянка это система представления символов с помощью точек и тире. Мы будем использовать
Создаём таблицу для букв и их кодов:
Делаем функцию для перевода текста в морзянку:
Проходим по каждому символу в строке:
Завершаем функцию и возвращаем результат:
🔥 В итоге получаем перевод текста в морзянку.
👉 Java Ready | #практика
Морзянка это система представления символов с помощью точек и тире. Мы будем использовать
HashMap, чтобы сопоставить символы с их морзянским эквивалентом.Создаём таблицу для букв и их кодов:
var morseCode = new java.util.HashMap<Character, String>();
morseCode.put('A', ".-");
morseCode.put('B', "-...");
Делаем функцию для перевода текста в морзянку:
public String toMorse(String text) {
StringBuilder morseText = new StringBuilder();
text = text.toUpperCase();Проходим по каждому символу в строке:
for (char c : text.toCharArray()) {
if (morseCode.containsKey(c)) {
morseText.append(morseCode.get(c)).append(" ");
} else if (c == ' ') {
morseText.append(" / "); // Пробел разделяет слова
}
}Завершаем функцию и возвращаем результат:
return morseText.toString().trim();
}
🔥 В итоге получаем перевод текста в морзянку.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Автор рассказывает про готовый Spring Boot Starter, который упрощает разработку Telegram-ботов и избавляет от рутинной конфигурации.
В этой статье:
• Быстрый старт бота
• Управление жизненным циклом
• Готовая архитектура
• Маршрутизация и обработка ошибок
• Open Source проект с исходниками на GitHub
🔊 Читать статью на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥6👍5