JavaRush /Курсы /Java Collections /Учимся гуглить | 1 уровень | 11 лекция

Учимся гуглить | 1 уровень | 11 лекция

Java Collections
1 уровень , 11 лекция
Открыта

— Привет, Амиго!

Продолжаем наши уроки – учимся гуглить.

Вот тебе несколько заданий:

Найди в интернете:
1 Примеры работы с классом File
2 Как получить список всех файлов в директории и ее поддиректориях?
3 Как получить список всех файлов в директории с расширением zip?
4 Как заархивировать файл?
5 Как заархивировать много файлов?
6 Как заархивировать много файлов и директорий?
7 Как разархивировать файл?
8 Как задать кодировку файла?
9 Как узнать кодировку файла в архиве?
10 Как поменять данные (свойства) в объекте типа Properties?
Комментарии (74)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Максим Li Уровень 49
30 ноября 2025
Denis Odesskiy Уровень 47
25 августа 2024
Как узнать кодировку в файле? С помощью класса CharsetDecoder? Но достоверно, без сторонних библиотек (да и с ними тоже) никак вроде? Вообще достаточно сложная и нетривиальная задача, разве нет👀. Или кто-то уже защитил докторскую на эту тему?
Snaret Уровень 38
22 марта 2024
Заплати мне деньги - я задам тебе вопросы, ответы на которые ты обязан гуглить... 🤮"рукалицо"💩
AhanSere Уровень 1
23 октября 2023
Гуглить уже умеем, давай дальше...
ZюMLik Уровень 51
28 июня 2023
Тему пора переименовывать в - "Учимся задавать вопросы ChatGPT" 😅
11 февраля 2024
точно)
Кирилл Уровень 2
10 апреля 2023
Я чет первый раз на такой урок натолкнулся. Эт че за урок?))) Благодаря пустым лекциям и жесточайшим задачам от JavaRush я уже уроков 20 только и делаю, что гуглю😂
ꍟmpty꓅uple Уровень 35 Expert
29 марта 2023
разархивировать zip в ту же директорию где лежит архив, сохранив структуру директорий, включая пустые директории, написал так: https://github.com/emptyTuple/edu/blob/main/src/edu/zip/UnzipFileStreamConsumer.java
milniy87 Уровень 41
15 марта 2023
6. Как заархивировать много файлов и директорий?

public void createZipFile(Path zipFilePath, List<Path> sourcePaths) throws IOException {
    try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFilePath.toFile()))) {
        for (Path sourcePath : sourcePaths) {
            Files.walkFileTree(sourcePath, new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    ZipEntry zipEntry = new ZipEntry(sourcePath.relativize(file).toString());
                    zos.putNextEntry(zipEntry);
                    Files.copy(file, zos);
                    zos.closeEntry();
                    return FileVisitResult.CONTINUE;
                }

                @Override
                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                    ZipEntry zipEntry = new ZipEntry(sourcePath.relativize(dir).toString() + "/");
                    zos.putNextEntry(zipEntry);
                    zos.closeEntry();
                    return FileVisitResult.CONTINUE;
                }
            });
        }
    }
}

milniy87 Уровень 41
15 марта 2023
8. Как задать кодировку файла? Для задания кодировки файла в Java можно использовать конструкторы класса InputStreamReader и OutputStreamWriter, которые принимают в качестве параметра объект типа Charset. Например:

Charset charset = Charset.forName("UTF-8");
FileOutputStream outputStream = new FileOutputStream("file.txt");
OutputStreamWriter writer = new OutputStreamWriter(outputStream, charset);
9. Как узнать кодировку файла в архиве? Кодировка файла в архиве может быть определена с помощью метода ZipFile.getEntry(String entryName), который возвращает объект типа ZipEntry. Затем можно использовать метод ZipEntry.getComment() для получения комментария к файлу, который может содержать информацию о кодировке. Например:

ZipFile zipFile = new ZipFile("archive.zip");
ZipEntry zipEntry = zipFile.getEntry("file.txt");
String comment = zipEntry.getComment(); // содержит информацию о кодировке файла.txt
10. Как поменять данные (свойства) в объекте типа Properties? Чтобы поменять данные в объекте типа Properties, можно использовать метод setProperty(String key, String value), который устанавливает значение свойства по заданному ключу. Например:

Properties props = new Properties();
props.setProperty("username", "admin");
props.setProperty("password", "123456");

// изменяем значение свойства "password"
props.setProperty("password", "new_password");
Также можно использовать метод put(Object key, Object value), который работает аналогично методу setProperty, но принимает параметры типа Object.
ꍟmpty꓅uple Уровень 35 Expert
28 марта 2023
еще можно через стрим: https://github.com/emptyTuple/edu/blob/main/src/edu/zip/AddFolderToZip.java и свою рекурсию тоже можно написать для тренировки, тоже напишу еще и с SimpleFileVisitor для тренировки
11 февраля 2024
УХТЫ, СПАСИБО ДРУГ!
C-Grey Уровень 25
16 декабря 2022
учимся гуглить? ахахахахаха тут теория так с задачами связана что гуглить на первом квесте все научились. а на втором придумывать сначала рабочее решение, а потом перебирать еще несколько, что бы угадать что хочет валидатор +))))))
Liubov Уровень 1
23 ноября 2022
Ой, так всю джаву можно в интернете найти, зачем мы здесь собрались тогда? :D
wokku Уровень 51
7 июля 2023
чтоб понимать, что конкретно гуглить