JAVA实验六文件的输入输出的应用

JAVA实验六文件的输入输出的应用 


一、实验目的

1.掌握I/O输入输出流的使用。

2.掌握文件输入输出的使用。

二、实验编程内容

1.使用文件字符输出流将一段文字存入文件,然后使用输入流读取文件中的内容。

2.将字符串加密后写入文件,然后读取该文件,并解密。

3. 参考MSDOS方式下的COPY命令,编写一个应用程序实现文件的复制。使用格式:java Copy 源文件 目标文件,功能是将源文件的内容复制到目标文件。

4. 编写一个应用程序,要求将LinkedList<E>创建的对象写入文件,在读出一个LinkedList<E>节点中的数据。

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<a.length;i++){
			a[i]=(char)(a[i]^'a');
		}
		FileWriter out=new FileWriter(f);
		FileReader in=new FileReader(f);
		out.write(a);
		out.close();
		int n;
		while((n=in.read(a,0,2))!=-1){
			for(int i=0;i<n;i++){
				a[i]=(char)(a[i]^'a');
			}
			String str=new String(a,0,n);
			System.out.print(str);
		}System.out.println();
	}

}

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<Student> list=new LinkedList<Student>();
		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<Student> 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<size;i++){
			ss=(Student)object_in.readObject();
			System.out.println(ss.name+" "+ss.score);
		}
		object_in.close();
	}
}

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<result.length();i++){//匹配答案
			if(result.charAt(i)==answer.charAt(i) || result.charAt(i)==answer.charAt(i)-32)
				score+=25;
		}
		System.out.printf("最终得分为:%d\n",score);
	}
}


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<ll.length;i++){
				System.out.println(ll[i].getAbsolutePath());
				dele(ll[i]);
			}
		}
		ll=star.listFiles();
		if(star.isDirectory()&&(ll.length==0)){
			System.out.println("文件夹"+star.getName()+"被删除!");
			star.delete();
		}
	}
	
	public static void main(String[] args) throws IOException{
		
		File a,b,c,d;
		File div,div1,div2,div3,div4;
		div=new File("D:\\div");
		div.mkdir();
		
		a=new File("D:\\div\\a.txt");
		a.createNewFile();
		b=new File("D:\\div\\b.txt");
		b.createNewFile();
		div2=new File("D:\\div\\div2");
		div2.mkdir();
		
		c=new File("D:\\div\\div2\\c.txt");
		c.createNewFile();
		div3=new File("D:\\div\\div2\\div3");
		div3.mkdir();
		
		div4=new File("D:\\div\\div2\\div3\\div4");
		div4.mkdir();
		d=new File("D:\\div\\div2\\div3\\d.txt");
		d.createNewFile();
		File star=new File("D:\\div");
		dele(star);
		
		
		File divk=new File("D:\\abcd");
		divk.mkdir();//只删除一个文件夹
		divk.delete();
		
	}

}




你可能感兴趣的:(java,输入输出流)