IN JAVA: . The encryption program should work like a filter, reading the contents of one file, modifying the data into code, and then writing the code contents out to a second file. The second file will be a version of the first file, but written in a secret code. Although there are complex encryption techniques, you should come up with a simple one of your own. For example, you could read the first file one character at a time and add 10 to the character code of each character before it is written to the second file.
I HAVE THE FOLLOWING CODE, I know it doesnt follow the instructions but I want it to be able to get input from the user as well, so I just want you to incorporate the intructions above to my original code. thank you. also im using Java JOptionPane swing function.
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import javax.swing.JOptionPane;
//ROT encryption algorithm is implemented
public class Project {
public static void main(String args[]) throws IOException {
Scanner scan = new Scanner(System.in);
String letter = “”;
String rotValue = “”;
Project proj = new Project();
if(args.length >= 1) {
for (String arg : args) {
letter += arg + ” “;
}
}
else {
String input = JOptionPane.showInputDialog(“Enter your phrase: “);
letter= input;
}
rotValue = proj.convert(letter);
JOptionPane.showMessageDialog(null,”” + rotValue);
}
public String convert(String str) throws IOException {
FileInputStream fis;
fis = new FileInputStream(“D:/text.txt”);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String readline = “”;
readline = br.readLine();
while(readline != null)
{
System.out.println(readline);
readline = br.readLine();
}
StringBuilder val = new StringBuilder();
for(char a:str.toCharArray()) {
if(a >= ‘A’ && a <= ‘Z’) {
a += 13;
if(a > ‘Z’) {
a -= 26;
}
}
else if(a >= ‘a’ && a <= ‘z’) {
a += 13;
if(a > ‘z’) {
a -= 26;
}
}
val.append(a);
}
return val.toString();
}
}
please upload new code with output of the program . thanks.
Expert Answer
import java.util.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.IOException;
import javax.swing.*;
class Encr
{
public static void main(String args[])
{
String s,s1;
s=JOptionPane.showInputDialog(“Enter Source File Name “);
s1=JOptionPane.showInputDialog(“Enter a File Name Where we need to copy”);
int i;
i=Integer.parseInt(JOptionPane.showInputDialog(“Enter a Value By Which You Wanna
Increment”));
try {
FileInputStream fis = new FileInputStream(s);
OutputStream os = new FileOutputStream(s1);
char current;
while (fis.available() > 0) {
current = (char) fis.read();
int x=(int)current;
if(current!=’ ‘&&x!=10&&x!=13)
os.write((char)(current+i));
else if(x!=10&&x!=13)
os.write(current);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}