1

私は Java で caesar cipher 用のプログラムを作成しました。このプログラムは、コンピューターに保存されている入力としてテキスト ファイルを取り込み、ユーザーが提供するキー値に基づいて暗号化します。次に、この暗号化されたファイルをテキスト ファイル形式でコンピュータに保存する必要があります。どこが間違っていたのかを突き止めようとしてきましたが、Java の経験が豊富な人からの助けが少し必要だと思います。だから、私のコードは次のとおりです。

import java.util.Scanner;
import java.io.*;
import java.lang.*;

public class trial
{
    public static void main(String arg[])
    {
        String textFile="plaintext.txt";
        String cipheredFile=" ciphertext.txt";
        String line= null;
        FileReader fileReader=new FileReader(textFile);
        BufferedReader bufferedReader=new BufferedReader(fileReader);

        FileWriter fileWriter= new FileWriter(cipheredFile,true);
        BufferedWriter bufferedWriter= new BufferedWriter(fileWriter);


        int swvalue;
        Scanner input= new Scanner(System.in);
        System.out.println("Select 1: Encrypt, 2: Decrypt, 3: Get Frequency");
        int msg= input.nextInt();
        swvalue= Integer.valueOf(msg);

        switch(swvalue)


        {
        case 1:
            System.out.println("Encrypting the file");
            System.out.println(" Please enter a value for key");
            int keyvalue= input.nextInt();

            String[]  filearray=null;
            while(( line=bufferedReader.readLine())!=null)
            { 

            char[] toEncrypt=line.toCharArray();

                for(int i=0;i<toEncrypt.length;i++)
                {

                int charPosition= indexOf(line.charAt(i));
                int finalValue=(keyValue+charPosition)%26;
                char replaceValue=line.charAt(finalValue);
                line+=replaceValue;



                }


             bufferedWriter.write(line);
             bufferedWriter.newLine();

            }
            bufferedReader.close();
            bufferedWriter.close();

            break;


        case 2:


            System.out.println("Decrypt the file");
            break;



        case 3:

            System.out.println(" Get frequency");
            break;

        }
    }
}
4

1 に答える 1