2. (加密文件)通过给文件中的每个字节加5来对文件编码。编写一个程序,提示用户输入一个输人文件名和一个输出文件名,然后将输人文件的加密版本存人输出文件。
时间: 2024-03-23 12:37:10 浏览: 74
下面是 Python 代码实现:
```python
# 打开输入文件,读取其中的内容
input_file = input("请输入要加密的文件名:")
with open(input_file, "rb") as f:
content = f.read()
# 对每个字节加5
encrypted_content = bytes([(byte + 5) % 256 for byte in content])
# 将加密后的内容存入输出文件
output_file = input("请输入加密后的输出文件名:")
with open(output_file, "wb") as f:
f.write(encrypted_content)
print("加密完成!")
```
这个程序要求用户输入要加密的文件名和输出文件名,然后将输入文件中的每个字节加5,最终将加密后的内容存入输出文件中。注意,在 Python 中,打开文件时需要指定文件的模式,"rb" 表示以二进制模式读取文件,"wb" 表示以二进制模式写入文件。加5时需要使用模256的余数,这样才能保证加密后的内容仍然是一个字节。
相关问题
2. (加密文件)通过给文件中的每个字节加5来对文件编码。编写一个程序,提示用户输入一个输人文件名和一个输出文件名,然后将输人文件的加密版本存人输出文件
好的,你可以使用Java IO来实现这个功能。以下是一个示例代码:
```java
import java.io.*;
public class Exercise5_02 {
public static void main(String[] args) throws IOException {
// 获取输入文件名和输出文件名
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入输入文件名:");
String inputFileName = reader.readLine();
System.out.print("请输入输出文件名:");
String outputFileName = reader.readLine();
// 创建输入流和输出流
FileInputStream inputFile = new FileInputStream(inputFileName);
FileOutputStream outputFile = new FileOutputStream(outputFileName);
// 加密文件内容并写入输出文件
int data;
while ((data = inputFile.read()) != -1) {
data += 5; // 对字节加5
outputFile.write(data);
}
// 关闭输入流和输出流
inputFile.close();
outputFile.close();
System.out.println("文件已加密。");
}
}
```
在这个程序中,我们首先使用BufferedReader和InputStreamReader来获取输入文件名和输出文件名。然后,我们使用FileInputStream和FileOutputStream来创建输入流和输出流。在while循环中,我们不断从输入流中读取字节,对每个字节加5,然后将它写入输出流。最后,我们关闭输入流和输出流,并输出一条消息表示文件已加密。
请注意,如果文件不存在或无法打开,程序会抛出FileNotFoundException或IOException异常。因此,我们需要在代码中添加异常处理。
(加密文件)通过给文件中的每个字节加5来对文件编码。编写一个程序,提示用户输入一个输入文件名和一个输出文件名,然后将输入文件的加密版本存入输出文件。JAVA
以下是Java代码实现:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileEncoder {
public static void main(String[] args) {
String inputFileName = args[0];
String outputFileName = args[1];
try (FileInputStream fis = new FileInputStream(inputFileName);
FileOutputStream fos = new FileOutputStream(outputFileName)) {
int byteRead;
while ((byteRead = fis.read()) != -1) {
fos.write(byteRead + 5);
}
System.out.println("File encoded successfully.");
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
```
在命令行中运行此程序,需要提供两个参数,第一个参数是要加密的文件名,第二个参数是加密后输出的文件名。例如:
```
java FileEncoder input.txt output.txt
```
此程序将读取 `input.txt` 文件中的每个字节,并将其加5,然后将结果写入 `output.txt` 文件中。
阅读全文