Question & Answer: IN JAVA: . The encryption program should work like a filter, reading the contents of one file, modifying the data into code, and then…..

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();

}

}

}

Still stressed from student homework?
Get quality assistance from academic writers!