package com.javarush.task.task31.task3113;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
/*
Что внутри папки?
*/
public class Solution {
private String fileName;
private Path path;
private int fileCount;
private int folderCount;
private int DirectorySize;
public Solution(String fileName) {
this.fileName = fileName;
this.path = Paths.get(fileName);
}
public void IsDirectory_ScanDirectory() throws IOException {
if (!Files.isDirectory(this.path)) {
ErrorMassage();
} else {
SimpleFileVisitor<Path> fileVisitor = new SimpleFileVisitor<>() {
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
folderCount++;
return super.preVisitDirectory(dir, attrs);
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
int fileSize = Files.readAllBytes(file).length;
fileCount++;
DirectorySize += fileSize;
return super.visitFile(file, attrs);
}
};
Files.walkFileTree(this.path, fileVisitor);
}
}
private void ErrorMassage() {
System.out.println(this.fileName + "- не папка");
}
@Override
public String toString() {
return "Всего папок - " + this.folderCount
+ "\nВсего файлов - " + this.fileCount
+ "\nОбщий размер - " + this.DirectorySize;
}
public static void main(String[] args) throws IOException {
Solution solution = null;
try (InputStreamReader inputStreamReader = new InputStreamReader(System.in)
;BufferedReader reader = new BufferedReader(inputStreamReader)) {
solution = new Solution(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
solution.IsDirectory_ScanDirectory();
System.out.println(solution);
}
}
Magos Reductor Exception
28 уровень
Это я так херово анонимный класс вызвал? Justinian?? кто нибудь???
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
JustinianJudge в Mega City OneMaster
6 декабря 2019, 13:15решение
Нет времени вчитываться, да и если ты перескочил через третий квест и решил взяться за первый уровень 4-го квеста, то это твое решение и твоя ответственность.
Но пару слов скажу, во-первых, читаем Java Naming Convention, имя метода пишется с маленькой буквы и не может содержать подчеркиваний, должен быть CamelCase, только само название уже может сказать очень многое о том, где, сколько и как ты учил джаву.
Потом цикл:
Выглядит нелогичным, отрицание всегда читается хуже чем прямое действие, тем более, у тебя отрицание одна строка, а потом иначе и простыня.
Гораздо логичней было бы основную логику поместить в блок if, а если условие не сработает то уже вызвать массажОшибок(). Так что условие лучше перевернуть.
Анонимный класс в принципе можно использовать, лично я отдельный класс делал под этот объект, блок if/else if не должен быть перегружен, и тем более целый класс с логикой туда писать.
По поводу -1, глянул свой код, у меня тоже -1 стояло. Я уже не помню, попробую предположить, что оно первоначальный путь считает тоже. Но думаю на этот вопрос легко найти ответ потренировавшись на кошках, прочитать джава доки методов нужных, пустую директорию прогнать, это дело пары минут, если вопрос КАК это работает.
По поводу первого вопроса, то сам подумай. У тебя компилируется код.
На сервере код не компилируется. Что это может значит?
Разные версии jdk, валидатор на восьмой. если сильно интересует какую фичу языка ты заюзал, которая позже чем 8-я, ты это в Идее за 5 секунд сможешь сделать и Идея тебе сразу же все отметит и прокричит.
И не перескакивай через уровни. Если уверен в себе и силах, откуда вопросы? Если не уверен то проходи последовательно.
Читай Java Naming Convention, Clean code Роберта Мартина, писать код как попало это замедление прогресса на порядки,понимание вроде есть, но код и алгоритмическая мысль хаотичны
+2
Magos Reductor ExceptionExpert
6 декабря 2019, 13:24
Спасибо за помощь) я и сам не рад что перепрыгнул, но дополнительно пошел на курсо-семинар длительностью в 4 месяца где будем писать web приложение (по итогу лучших берут на работу) и срочно нужно было расчехлить систему котроля версий и maven, в итоге глянул в колекшене есть такая тема. думал щя прорашу в итоге материи не хватило... расчехлил так и застрял с нулемы балансом материи надо пару задачек решить что бы было чем за много поточность платить... вот так неловко получилось.
0
JustinianJudge в Mega City OneMaster
6 декабря 2019, 13:40
генератор принятия неверных решений у тебя конечно работает на полную :)
Если ты прошел на подобные курсы, тебе нужно учить то что нужно и эффективно, шаг влево вправо расстрел, в джаве годами есть что учить.
Я советую продолжить третий квест по мере свободного времени, и сфокусироваться на выполнении заданий твоих курсов.
Нужен гит и мавен, задавай вопрос и спрашивай , как расчехлить их. Там тебе на полдня-день работы от силы, в том объеме что нужно для твоего курса.
Запомни, пока ты учишьделаешь не то что нужно, твои конкуренты за рабочее место делают и учат то что нужно. Так что будь внимательнее, лучше спроси лишний раз на форуме (такие вопросы лучше там) что и как учить, чем идти не в ту степь. Хотя тебе все что нужно это просто писать код, запускать веб приложения. Пока запустишь, пока поработаешь с ним, выучишь и мавен и гит в нужной тебе мере без всякой дополнительной теории по принципу, нужно что-то сделать, не знаешь как - гуглишь, делаешь, вот и уже знаешь, и так от шага к шагу. гугль и стекоферфлоу твои самые верные товарищи
0
Magos Reductor ExceptionExpert
6 декабря 2019, 14:12
вот так и живу, пока шишку не набъю не доходит) к сложалению у меня только так)
0
Magos Reductor ExceptionExpert
6 декабря 2019, 14:33
бля про масаж ошибок норм так)
0
Magos Reductor ExceptionExpert
5 декабря 2019, 16:40
и если не трудно замечанию по коду прокоментируйте,
я так понимаю что вызов анонимного класса лучше было бы опредить в отдельный метод.
0
Magos Reductor ExceptionExpert
5 декабря 2019, 16:38
Он считает и начальную директорию так как в нее заходит, правильно я понимаю?
под начальной понимаю
0