Ответ
В Java существует богатый набор стандартных API для работы с различными источниками данных.
Ключевые источники и API:
-
Коллекции (Collections Framework): Базовые структуры данных.
List(ArrayList,LinkedList)Set(HashSet,TreeSet)Map(HashMap,TreeMap)
-
Ввод-Вывод (I/O & NIO.2): Для работы с потоками и файлами.
- Классы
InputStream/OutputStream,Reader/Writer. - Современный API
java.nio.file(Files,Paths,Path).
- Классы
-
Базы данных (JDBC): Стандартный интерфейс для работы с СУБД.
Connection,Statement,PreparedStatement,ResultSet.
-
Потоки данных (Stream API): Для декларативной обработки коллекций.
Stream<T>, операцииmap,filter,reduce,collect.
-
Сеть (Networking): Для сетевых операций.
Socket,ServerSocket.URLиHttpURLConnectionдля HTTP-запросов.
Пример чтения файла с помощью NIO.2:
import java.nio.file.*;
import java.util.List;
Path path = Paths.get("data.txt");
List<String> lines = Files.readAllLines(path); // Чтение всех строк
lines.forEach(System.out::println);
Пример использования JDBC (с try-with-resources):
try (Connection conn = DriverManager.getConnection(dbUrl, user, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE active = ?")) {
stmt.setBoolean(1, true);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("username"));
}
} catch (SQLException e) {
e.printStackTrace();
} Ответ 18+ 🔞
А, слушай, ну вот, блядь, в Java же есть целый овердохуища стандартных штук, чтобы с данными работать. Не надо самому велосипед из говна и палок собирать, всё уже придумали до нас, эти, блядь, умные дядьки в очках.
Ну, смотри, куда обычно лезем за данными:
-
Коллекции (Collections Framework): Это как твоя первая пачка сигарет в школе — база, без неё нихуя.
List(ArrayList,LinkedList) — чтоб просто складывать по порядку.Set(HashSet,TreeSet) — чтоб складывать, но без повторов, ёпта.Map(HashMap,TreeMap) — чтоб по ключу искать, как в телефонной книжке, только цифровой.
-
Ввод-Вывод (I/O & NIO.2): Чтоб с файлами и потоками не ебаться как лось с асфальтом.
- Старые деды
InputStream/OutputStream,Reader/Writer. Работают, но иногда тормознут. - А вот новый шикарный API
java.nio.file(Files,Paths,Path) — это уже красота, блядь. Удобно, как в тапочках.
- Старые деды
-
Базы данных (JDBC): Ну, это классика жанра. Хочешь с PostgreSQL, MySQL или хоть с Excel через драйвер — всё через него.
Connection,Statement,PreparedStatement,ResultSet. Выучи как «Отче наш», и будет тебе счастье.
-
Потоки данных (Stream API): Вот это, блядь, магия! Коллекции обрабатывать — одно удовольствие. Вместо циклов — красота.
Stream<T>, и понеслась:map,filter,reduce,collect. Чистая декларативщина, в рот меня чих-пых!
-
Сеть (Networking): Хочешь с сервером пообщаться или свой сервак поднять — пожалуйста.
Socket,ServerSocket— для своих низкоуровневых шалостей.URLиHttpURLConnection— чтобы по HTTP что-то стянуть, хотя сейчас уже есть и помощнее инструменты.
Вот, смотри, как файл прочитать по-новому, красиво (NIO.2):
import java.nio.file.*;
import java.util.List;
Path path = Paths.get("data.txt");
List<String> lines = Files.readAllLines(path); // Считал всё разом, и нет проблем
lines.forEach(System.out::println);
А вот, блядь, как с базой через JDBC работать, чтобы ресурсы сами закрывались (try-with-resources):
try (Connection conn = DriverManager.getConnection(dbUrl, user, password);
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE active = ?")) {
stmt.setBoolean(1, true);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("username"));
}
} catch (SQLException e) {
e.printStackTrace(); // Ну, на крайняк, если всё пошло по пизде
}
Вот и вся наука, блядь. Главное — не путать, где List, а где ResultSet, а то потом сидишь и думаешь: «Чё за хуйня, почему не работает?». А потому что, чувак, в Map метод get() есть, а в ResultSet — getString(). Всё просто, как три копейки.