【问题描述】编写一个程序,实现文件的复制。程序的任务是将当前目录下filecopy.in文件复制成filecopy.out。
【输入文件】输入文件为当前目录下的filecopy.in。其内容由任意文本构成。
【输出文件】输出文件为当前目录下的filecopy.out。
【样例输入】若输入filecopy.in文件内容如下:
hello world1!#
hello world2!#
hello world3!#
hello world4!#
【样例输出】输出文件filecopy.out内容为:
hello world1!#
hello world2!#
hello world3!#
hello world4!#
【评分标准】该题要求输出文件与输入文件内容一致。如果你的输出文件正确,则该测试点得满分,否则该测试点得分为0。
【样例说明】输入文件为当前目录下的filecopy.in,输出文件为当前目录下的filecopy.out。
package ch008;
import java.io.*;
public class FileCopyDemo {
public static void main(String[] args) {
BufferedWriter bw=null;
BufferedReader br=null;
try {
br=new BufferedReader(new FileReader("filecopy.in"));
bw=new BufferedWriter(new FileWriter("filecopy.out"));
String line=System.getProperty("line.separator");
String output=null;
while((output=br.readLine())!=null){
bw.write(output+line);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bw!=null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
br=new BufferedReader(new FileReader("filecopy.out"));
String output=null;
while((output=br.readLine())!=null){
System.out.println(output);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if(br!=null){
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
1) 写一个加密程序,对文件1.txt进行加密。它从输入流中读入一个密钥,并将文件密文输出。采用下面的简单加密算法:
1)读入密钥的key是一个字符串;
2)明文中字符c的密文为c^key[i];
3)循环使用key中的各个字符,直至处理完全部明文。如果key为空,则不作加密
4)解密时,用同一个key重新加密密文,就可以得到明文。
【输入形式】
从标准输入流中读入一个密钥串,使用其对当前目录下的文件1.txt进行加密。
【输出形式】
将文件密文输出到文件2.txt
【输入样例】
输入密钥为:
test
1.txt文件内容为
3321
5678
【输出样例】
输出密文到2.txt文件中。
GVAE
ASDL
【样例说明】
从标准输入中读入一个密钥对文件1.txt加密,并将文件密文输出到2txt文件中。
提示:可将得到的密文文件2.txt拷贝到1.txt文件中,并用原密钥对该文件再次加密,若得到的密文文件与原始文件相同,则说明程序算法正确。
package ch008;
import java.io.*;
import java.util.Scanner;
public class FileEncryption {
public static void main(String[] args) {
BufferedWriter bw=null;
Scanner sc=new Scanner(System.in);
String keys=sc.next();
//String ming=null;
BufferedReader br=null;
try {
br=new BufferedReader(new FileReader("1.txt"));
bw=new BufferedWriter(new FileWriter("2.txt"));
String m=null;
while((m=br.readLine())!=null){
for(int i=0;i<keys.length();i++){
bw.write((char)(m.charAt(i)^keys.charAt(i)));
}
bw.newLine();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(br!=null){
try {
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if(bw!=null){
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
- 编写一个应用程序,向数据文件out.dat中输入100个1000以内的随机整数,随后并读取这些整数放入数组,并排序输出到控制台 (要求使用DataInputStream和DataOutputStream中的readInt()方法和writeInt()方法)
package ch008;
import java.io.*;
public class DataStreamDemo {
public static void main(String[] args) {
DataInputStream di=null;
DataOutputStream dl=null;
int x=0;
try {
di=new DataInputStream(new FileInputStream("out.dat"));
dl=new DataOutputStream(new FileOutputStream("out.dat"));
for(int i=0;i<100;i++){
dl.writeInt ((int) (Math.random()*1000));
}
while((x=di.readInt())!=0){
System.out.print(x+" ");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}
}

这篇博客介绍了三个程序:1) 实现文件复制,将filecopy.in复制为filecopy.out;2) 设计一个加密程序,对1.txt使用输入的密钥加密并输出到2.txt;3) 编写应用,生成包含100个随机整数的out.dat文件,读取排序后输出到控制台。涉及文件I/O、加密算法及整数排序。

1150

被折叠的 条评论
为什么被折叠?



