Java Ready | Программирование
8.89K subscribers
1.22K photos
60 videos
1 file
599 links
Авторский канал по разработке на Java.
Ресурсы, гайды, задачи, шпаргалки.
Информация ежедневно пополняется!

Автор: @energy_it

Реклама на бирже: https://telega.in/c/java_ready
Download Telegram
👩‍💻 Разбираем TreeSet — простой способ получить отсортированную коллекцию!

Каждый элемент автоматически занимает своё место, а дубликаты просто не добавляются. Коллекция сама следит за порядком.

TreeSet подходит не только для хранения уникальных данных, но и для задач, где важны интервалы, границы и быстрые навигационные операции.


👉 Java Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103👍3
Хочешь запустить внешнюю программу прямо из Java?

Иногда нужно вызвать системную утилиту, открыть файл, запустить скрипт для этого в Java есть Runtime и ProcessBuilder.

Самый простой запуск команды:
Runtime.getRuntime().exec("notepad.exe");


Запуск с аргументами:
new ProcessBuilder("ping", "google.com")
.inheritIO()
.start();


Получение вывода программы:
Process p = Runtime.getRuntime().exec("java -version");
p.getInputStream().transferTo(System.out);


🔥 Подходит для запуска CLI-утилит, тестов, скриптов, любых системных программ.

👉 Java Ready | #совет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍43😁1
👩‍💻 Конвертируем PDF в набор PNG-страниц!

Часто нужно показать PDF не как файл, а как набор картинок. Для этого можно на Java пройтись по страницам PDF и сохранить каждую в отдельный PNG.

В этом посте:
Загружаем документ;

Используем PDFRenderer;

Сохраняем каждую страницу.


Если работаете с PDF эта задаче обязательно пригодится вам для отображения всего в удобных фото.

👉 Java Ready | #задача
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥63
🔥12👍64😁4
Вывод дерева директорий!

Иногда нужно быстро посмотреть структуру проекта прямо из Java-кода. Удобнее всего вывести дерево папок и файлов с отступами и ветками. Такой приём подходит для утилит, проектов и отладочных скриптов.

Задаём корневую директорию и запускаем вывод дерева:
var root = java.nio.file.Path.of("src");
printTree(root, "");


Пишем функцию, которая выводит имя текущей директории и обходит содержимое:
void printTree(java.nio.file.Path dir, String prefix) {
System.out.println(prefix + dir.getFileName());
try (var s = java.nio.file.Files.list(dir)) {
var children = s.toList();
for (int i = 0; i < children.size(); i++) {
var p = children.get(i);
boolean last = (i == children.size() - 1);


Добавляем ветки и рекурсивный обход поддиректорий:
try {
var pref = prefix + (last ? "└── " : "├── ");
if (Files.isDirectory(p)) printTree(p, pref);
else System.out.println(pref + p.getFileName());
} catch (IOException e) {
System.out.println("Ошибка: " + e.getMessage());
}


🔥 В результате в консоли появится дерево папок, подкаталогов и файлов с ветками и отступами.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍32
👩‍💻 Сканируем Bluetooth-устройства через системные команды!

Java может запускать утилиты операционной системы и анализировать их вывод.

В этом посте:
Запускаем системные утилиты;

Читаем вывод;

Парсим имена устройств.


С использованием этого метода можно встроить получения Bluetooth устройств в установщики или другие утилиты.

👉 Java Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥5👍3
Генерация таблицы из данных!

Иногда нужно красиво отобразить список данных. Простой println ломает выравнивание, поэтому лучше собрать таблицу вручную. Java позволяет формировать ровные колонки через printf.

Готовим данные для таблицы:
var rows = java.util.List.of(
new String[]{"Имя", "Возраст", "Город"},
new String[]{"Alice", "22", "Paris"},
new String[]{"Bob", "30", "Berlin"}
);


Определяем ширину колонок и формат вывода:
String fmt = "%-10s %-8s %-10s%n";


Проходим по записям и печатаем таблицу:
for (var r : rows) {
System.out.printf(fmt, r[0], r[1], r[2]);
}


🔥 На выходе получаем ровную таблицу с красивым выводом. Удобно для отчётов, логов и представления структурированных данных.

👉 Java Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍6🔥4
📂 Напоминалка по типам серверов в современных системах!

Например, DNS-сервер преобразует доменное имя в IP-адрес, а кеш-сервер ускоряет отдачу данных, снижая нагрузку на базу.

На картинке — фундамент серверной инфраструктуры, без которой не работает ни одно современное приложение.

Сохрани, чтобы не забыть!

👉 Java Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥65