package com.javarush.task.task18.task1826;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
Шифровка
*/
public class Solution {
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream(args[1]);
FileOutputStream outputStream = new FileOutputStream(args[2]);
byte[] buff = new byte[inputStream.available()];
while (inputStream.available() > 0) {
inputStream.read(buff);
if (args[0].equals("-e")) {
outputStream.write(encription((byte) inputStream.read()));
} else if (args[0].equals("-d")) {
outputStream.write(decription((byte) inputStream.read()));
}
}
inputStream.close();
outputStream.close();
}
public static byte encription(byte buff) {
// for (byte i : buff) {
if (buff>0 && buff<255) buff = (byte) (buff + 1);
//}
return buff;
}
public static byte decription(byte buff) {
if (buff>0 && buff<255) buff = (byte) (buff + 1);
return buff;
}
}
Vitali Barysau
31 уровень
Вопрос почему этот вариант не проходит валидацию
Решен
Комментарии (13)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Vitali Barysau
18 января 2020, 18:30
Минимум кода. А расшифровка не проходит
0
Vitali Barysau
18 января 2020, 18:29
public class Solution {
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream(args[1]);
FileOutputStream outputStream = new FileOutputStream(args[2]);
byte[] buff = new byte[inputStream.available()];
while (inputStream.available() > 0) {
inputStream.read(buff);
if (args[0].equals("-e")) {
outputStream.write(inputStream.read()+1);
} else if(args[0].equals("-d")) {
outputStream.write(inputStream.read()-1);
}
}
inputStream.close();
outputStream.close();
}
}
0
Ksenia Volkova Java Developer в DXC Master
18 января 2020, 18:58
Теперь совсем непонятно.
Если тут
ты считал все в буфер, то что ты записываешь в этой строке?
0
Vitali Barysau
18 января 2020, 22:48
Я думал что inputStream.read() (именно в такой форме ) мы считываем только один байт потока
0
Ksenia Volkova Java Developer в DXC Master
19 января 2020, 07:04решение
Так и есть. Но ты уже считал все байты из потока, больше там считывать нечего.
+2
Vitali Barysau
19 января 2020, 08:15
Все спасибо теперь я понял.
0
Vitali Barysau
19 января 2020, 15:59
Один вопросик. Как тогда шифруется 255-ый бай? Создается два байта?
0
Ksenia Volkova Java Developer в DXC Master
19 января 2020, 16:07
Нет, после прибавления единицы он зашифруется как 0-й.
0
Ksenia Volkova Java Developer в DXC Master
18 января 2020, 17:25полезный
При шифровании ты прибавлешь 1 и при дешифровке тоже прибавляешь 1?
А 0-й и 255-й байты вообще не нужны?
+1
Vitali Barysau
18 января 2020, 17:44
package com.javarush.task.task18.task1826;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
Шифровка
*/
public class Solution {
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream(args[1]);
FileOutputStream outputStream = new FileOutputStream(args[2]);
byte[] buff = new byte[inputStream.available()];
while (inputStream.available() > 0) {
inputStream.read(buff);
if (args[0].equals("-e")) {
outputStream.write(encription((byte) inputStream.read()));
} else if(args[0].equals("-d")) {
outputStream.write(decription((byte) inputStream.read()));
}
}
inputStream.close();
outputStream.close();
}
public static byte encription(byte buff) {
buff = (byte) (buff + 1);
return buff;
}
public static byte decription(byte buff) {
buff = (byte) (buff - 1);
return buff;
}
}
0
Vitali Barysau
18 января 2020, 17:45
Исправил косяк. Но на расшифровку не проходит. Не понимаю как шифровать последний и первый байт
0
Ksenia Volkova Java Developer в DXC Master
18 января 2020, 17:50
Зачем вообще нужны все преобразования в byte, если inputstream читает int и outputstream пишет тоже int?
0
Vitali Barysau
18 января 2020, 17:57
Да что то туплю уже, Задача не проходит и все на расшифровку и не могу понять почему.
0