您的位置:首页 > 编程语言 > Java开发

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

2016-05-31 11:35 1631 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: