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

来源:互联网 发布:广义线性模型 知乎 编辑:程序博客网 时间:2024/06/07 04:31

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-catchFileReader 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();}}




0 0
原创粉丝点击