Расскажите как это работает?
package com.javarush.task.task18.task1826;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
Шифровка
*/
Программа запускается с одним из следующих наборов параметров:
-e fileName fileOutputName
-d fileName fileOutputName
где:
fileName - имя файла, который необходимо зашифровать/расшифровать.
fileOutputName - имя файла, куда необходимо записать результат шифрования/дешифрования.
-e - ключ указывает, что необходимо зашифровать данные.
-d - ключ указывает, что необходимо расшифровать данные.
Требования:
1. Считывать с консоли ничего не нужно.
2. Создай поток для чтения из файла, который приходит вторым параметром ([fileName]).
3. Создай поток для записи в файл, который приходит третьим параметром ([fileOutputName]).
4. В режиме "-e" программа должна зашифровать [fileName] и записать в [fileOutputName].
5. В режиме "-d" программа должна расшифровать [fileName] и записать в [fileOutputName].
6. Созданные для файлов потоки должны быть закрыты.
*/
public class Solution {
// Как вообще это работает?
// Вопрос: Каким образом берутся элементы массива args если длина этого массива равна нулю
public static void main(String[] args) throws IOException {
String fileName = args[1];
String fileOutputName = args[2];
FileInputStream fileInputStream = new FileInputStream(fileName);
FileOutputStream fileOutputStream = new FileOutputStream(fileOutputName);
byte bytes;
// Вопрос: Здесь проходят сравнение одного из элементов массива args с заданной (формулой).
// Каким образом если нулевой элемент массива args равен нулю
if (args[0].equals("-e")) {
while (fileInputStream.available() > 0) {
bytes = (byte) (fileInputStream.read());
fileOutputStream.write(bytes+1);
fileOutputStream.flush();
}
}
if (args[0].equals("-d")) {
while (fileInputStream.available() > 0) {
bytes = (byte) (fileInputStream.read());
fileOutputStream.write(bytes-1);
fileOutputStream.flush();
}
}
fileInputStream.close();
fileOutputStream.close();
}
}
Задача решена правильно валидатор ее принял.
Александр Сухарев
32 уровень
Шифровки!
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Justinian Judge в Mega City One Master
8 ноября 2020, 02:10
Разбор чужих решений приносит мало пользы, но если сильно интересно.
И потом эти аргументы попадают при запуске в массив args, который принимает метод main
длина этого массива равна трем.
Ибо в условиях написано черным по белому :
итого, пример массива args для данной программы:
Нулю массивв args может быть равен если ты не указал аргументы запуска программмы, к 18-му уровню у тебя уже было достаточно задач, где это нужно было сделать.
Но мало ли:
Run -> Edit configuration ->
и там в поле arguments через пробел вводишь нужные аргументы. Если строковый аргумент имеет пробелы, то нужно его двойные кавычки заключить
Например: +4
Александр Сухарев
8 ноября 2020, 10:46
Класс. Спасибо
0
Александр Сухарев
8 ноября 2020, 10:49
Но мне кажется что раньше я этого не встречал...
Если я не прав, можно ссылочку на задачу (если это не очень напряжно)
0
Александр Сухарев
8 ноября 2020, 11:35
Да, было нашёл спасибо.
0