JAVA实验六文件的输入输出的应用
一、实验目的
1.掌握I/O输入输出流的使用。
2.掌握文件输入输出的使用。
二、实验编程内容
1.使用文件字符输出流将一段文字存入文件,然后使用输入流读取文件中的内容。
2.将字符串加密后写入文件,然后读取该文件,并解密。
3. 参考MSDOS方式下的COPY命令,编写一个应用程序实现文件的复制。使用格式:java Copy 源文件 目标文件,功能是将源文件的内容复制到目标文件。
4. 编写一个应用程序,要求将LinkedList
5. 使用缓冲流读取试题文件,Test.txt如下:,每次显示试题文件中的一道题目。读取到字符“*”时候暂停读取,等待用户从键盘输入答案。用户做完全部题目后,程序给出用户的得分。用户运行结果如图:
(1)北京奥运是什么时间开幕的?
A.2008-08-08B. 2008-08-01
C.2008-10-01D.2008-07-08
********************
(2)下列哪个国家不属于亚洲?
A.沙特 B.印度C.巴西 D.越南
********************
(3)下列哪个国家最爱足球?
A.刚果 B.越南C.老挝 D.巴西
********************
(4)下列哪种动物属于猫科动物?
A.鬣狗 B.犀牛C.大象 D.狮子
********************
7.删除一个文件夹.
1.
package cn.edu.nefu.zhihu;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IO1 {
public static void main(String[] args) throws Exception {
File f=new File("d:\\a");
f.mkdir();//建立一个文件夹
File f1=new File("d:\\a\\a.txt");
f1.createNewFile(); //建立一个文件
char a[]="Wecome to BeiJing!".toCharArray();
char b[]=new char[5];
FileWriter out=new FileWriter(f1);//创建文件字符输出流
out.write(a);//写入文件
out.close();
FileReader in=new FileReader(f1);//创建文件字符输入流
int n=0;
while((n=in.read(b,0,2))!=-1){ //用字符流读到文件尾
String str=new String(b,0,n);
System.out.print(str);
}
in.close();
}
}
2.
package cn.edu.nefu.zhihu;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IO3 {
public static void main(String[] args) throws IOException{
File f=new File("d:\\a\\b.txt");
f.createNewFile();
String s="Welcome to JAVA!";
char a[]=s.toCharArray();
for(int i=0;i
3.
存在相应的路径和相应的文件,并且文件中有内容
package cn.edu.nefu.zhihu;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IO4 {
public static void main(String[] args) throws IOException {
File writeFile=new File("D:\\a\\writeFile.txt");
writeFile.createNewFile();
FileReader inOne=new FileReader("D:\\a\\a.txt");
BufferedReader inTwo=new BufferedReader(inOne);
FileWriter tofile=new FileWriter("D:\\a\\writeFile.txt");
BufferedWriter out=new BufferedWriter(tofile);
String s=null;
while((s=inTwo.readLine())!=null){
out.write(s);
out.newLine();
}
out.flush();
out.close();
tofile.close();
inOne=new FileReader("D:\\a\\writeFile.txt");
inTwo=new BufferedReader(inOne);
while((s=inTwo.readLine())!=null){
System.out.println(s);
}
inOne.close();
inTwo.close();
}
}
4.
package cn.edu.nefu.zhihu;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Iterator;
import java.util.LinkedList;
public class Test2 {
public static void main(String[] args) throws IOException, ClassNotFoundException{
LinkedList list=new LinkedList();
Student s1=new Student("Kary",99);
Student s2=new Student("Jun",100);
Student s3=new Student("Lili",87);
list.add(s1);
list.add(s2);
list.add(s3);
FileOutputStream file_out=new FileOutputStream("D:\\a.txt");
ObjectOutputStream object_out=new ObjectOutputStream(file_out);
Iterator iter=list.iterator();//利用迭代器向文件中写入数据
while(iter.hasNext()){
Student it=iter.next();
object_out.writeObject(it);
}
object_out.close();
FileInputStream file_in=new FileInputStream("D:\\a.txt");
ObjectInputStream object_in=new ObjectInputStream(file_in);
int size=list.size();//利用原来链表的规模从文件中读
System.out.println("The Size of List Is: "+size);
Student ss;
System.out.println("The List is:");
for(int i=0;i
5.
首先在代码所对应的绝对路径上建立存有相应内容发文件
代码实现:
package cn.edu.nefu.zhihu;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class IO2 {
public static void main(String []args){
Scanner inputAnswer=new Scanner(System.in);//键盘输入
int score=0;
StringBuffer answer=new StringBuffer(); //用户输入的答案存放在可以更改的缓冲流中
String result="ACDD";//标准答案存放在字符常量区中
try{//其中含有异常,所以要进行try-catch
FileReader inOne=new FileReader("d:\\test.txt");//路径的另外两种写法(D:/test.txt)或者(D/text.txt)
BufferedReader inTwo=new BufferedReader(inOne);
String s=null;
while((s=inTwo.readLine())!=null){//读一行能够读到
if(s.startsWith("*")==false) //若不是以*开始的,直接输出题目要求即可
System.out.println(s);
else {
System.out.println("请输入选择的答案(A,B,C,D):");
String str=inputAnswer.nextLine();
try{
char c=str.charAt(0);
answer.append(c);
}
catch(StringIndexOutOfBoundsException exp){
answer.append("*");
}
}
}
inOne.close();
inTwo.close();
}
catch(IOException exp){
}
for(int i=0;i
7.
在有指定路径的前提下,完成先创建后删除的工作
package cn.edu.nefu.zhihu;
import java.io.File;
import java.io.IOException;
public class IO5 {
static void dele(File star){
if(star.isFile()){
star.delete();
return;
}
File[]ll=star.listFiles();
if(star.isDirectory()&&ll.length!=0){
for(int i=0;i