有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

测试简单的Java加密/解密inputFileName不存在

此代码在每个字符后添加数字100

import java.io.*;
import java.io.IOException;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileEncryptionAndDecryption {
    public static void main(String[] args)
    throws IOException {
        String inputFileName = "DemoFile";
        String encryptedFile = "Encrypted File";
        String decryptedFile = "Decrypted File";
        encryptFile(inputFileName, encryptedFile);
        FileDecryption.decryptFile(encryptedFile, decryptedFile);
    }
    public static void encryptFile(String inputFileName,
        String encryptedFile)
    throws IOException, FileNotFoundException {
        File file1 = new File(inputFileName);

        FileInputStream fis = new FileInputStream(file1);
        FileOutputStream fos = new FileOutputStream(encryptedFile);
        int[] encrypt = {
            100
        };

        DataOutputStream outputFile =
            new DataOutputStream(new FileOutputStream("Encrypt.dat"));

        for (int i = 0; i < encrypt.length; i++)
            fos.write(encrypt[i] + 100);

        System.out.println("Encryption done.");

        outputFile.close();
    }
}

class FileDecryption {
    public static void decryptFile(String inputFileName,
        String encryptedFile)
    throws IOException, FileNotFoundException {
        File file1 = new File(inputFileName);

        FileInputStream fis = new FileInputStream(file1);
        FileOutputStream fos = new FileOutputStream(encryptedFile);
        int[] decrypt = {
            0
        };

        DataInputStream inputFile =
            new DataInputStream(new FileInputStream("Encrypt.dat"));

        for (int i = 0; i < decrypt.length; i--)
            fos.write(decrypt[i] - 100);

        System.out.println("Decryption done.");

        inputFile.close();


 }
}

我需要做什么才能让“演示文件”存在?什么是好的、简单的测试代码?我应该把评论放在哪里?我不想要一大堆不必要的评论,尽管我不知道哪些评论是必要的


共 (1) 个答案

  1. # 1 楼答案

    要创建演示文件,只需使用文本编辑器,将要加密的文本放入其中:我放入演示文件。将txt文件放入名为的子文件夹中/数据/

    /数据/演示文件。txt

    abc 
    

    然后输入路径/文件名。代码中的ext:

        String inputFileName = "./data/DemoFile.txt";
    

    此外,下面使用while循环来处理FileInputStream对象,并逐个字符地读取文件来进行加密和解密,我认为这正是您的意图

            public static void main ( String[] args ) throws IOException {
                String inputFileName = "./data/DemoFile.txt";
                String encryptedFile = "./data/Encrypted.txt";
                String decryptedFile = "./data/Decrypted.txt";
                encryptFile                 ( inputFileName, encryptedFile );
                FileDecryption.decryptFile  ( encryptedFile, decryptedFile );
            }
    
            public static void encryptFile ( String inputFileName, String encryptedFile )
                throws IOException,
                FileNotFoundException {
                File file1 = new File ( inputFileName );
    
                FileInputStream     fis = new FileInputStream   ( file1 );
                FileOutputStream    fos = new FileOutputStream  ( encryptedFile );
                int[] encrypt = { 100 };
    
                DataOutputStream outputFile = new DataOutputStream ( new FileOutputStream ( encryptedFile ) );
    
                //for ( int i = 0; i < encrypt.length; i++ ) { 
                int r;
                while ((r = fis.read()) != -1) {
                    char ch = (char) r;
                    System.out.println ( "Reading   ["+ ch + "]" );
                    fos.write ( ch+encrypt[0] );
                    System.out.println ( "Encrypted ["+ ch+encrypt[0] + "]" );
                }
    
                System.out.println("Encryption done.");
    
                outputFile.close();
            }
        }
    
        class FileDecryption {
            public static void decryptFile ( String inputFileName, String encryptedFile )
                throws IOException,
                FileNotFoundException {
                File file1 = new File(inputFileName);
    
                FileInputStream fis = new FileInputStream(file1);
                FileOutputStream fos = new FileOutputStream(encryptedFile);
                int[] decrypt = { 100 };
    
                DataInputStream inputFile = new DataInputStream(new FileInputStream(encryptedFile));
    
                //for ( int i = 0; i < decrypt.length; i  )
                //    fos.write(decrypt[i] - 100);
    
                int r;
                while ((r = fis.read()) != -1) {
                    char ch = (char) (r-decrypt[0]);
                    System.out.println ( "Reading   ["+ ch + "]" );
                    fos.write ( ch );
                    System.out.println ( "Decrypted ["+ (ch) + "]" );
                }
    
                System.out.println("Decryption done.");
                inputFile.close();
    
            }
        }
    

    我希望这能回答你的问题。代码应该能帮助你实现目标。。。阿德姆