Консольное приложение на Java

Друзья, здравствуйте! В Jav`e пока что полный ноль. Хочу сделать подобное консольное приложение, но как оказалось самое тяжелое - это начать. Прошу направить на путь, подсказать с чего начать, потому что в голове полна путаница и даже не знаю, что писать. Помогите, пожалуйста. Нужен наставник хотя бы на один вопрос, а мне не к кому обратиться) введите сюда описание изображения


Ответы (1 шт):

Автор решения: Andrea Jones

Для написания такого консольного приложения следует вам изучить O/I, для этой программы знать нужно немного, а именно: считать текстовой файл символьно и записать в текстовой файл символьно. К примеру для чтения файла можно воспользоваться:

try(BufferedReader br = new BufferedReader(new 
        FileReader("nameFile"))){
        StringBuilder text = new StringBuilder();
        String line;

        while((line = br.readLine()) != null){
            text.append(line + "\n");
        }

        String allText = text.toString();
        System.out.println(allText);
    }
    catch(Exception e){
        e.printStackTrace();
    }

Код работает для txt файлов, для word требуются совсем другие мохинации. Пример для чтения из 1 файла и запись в другой файл:

 try {
        try(BufferedReader br = new BufferedReader(new 
                FileReader("firstFile"));
            BufferedWriter wbr = new BufferedWriter(new 
                 FileWriter("secondFile"))){
            StringBuilder text = new StringBuilder();
            String line;

            while((line = br.readLine()) != null) {
                wbr.write(line);
                wbr.newLine();
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }

А для начала вам требуется считать строку и проверять её на ту или иную команду. Легче всего прочитать через Scanner и разбить её на массив строк:

Scanner scanner = new Scanner(System.in);
String [] command = scanner.nextLine().split(" ");

Чтобы запоминать имена входных файлов и их границы, можно воспользоваться HashMap, где в качестве ключа будем хранить путь к файлу, а в качестве значения - кол-во строк в нём. Если мы будем хранить не путь файла, а само название файла, то если будут два одинаковых имени файла, первый из них затрётся.

→ Ссылка