实验五、异常处理与I/O操作

一、实验目的:

学会异常处理与I/O操作

二、实验环境:

拥有java编译环境的pc

三、实验内容:

1、分别使用FileWriter 和 BufferedWriter 往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;
使用FileWriter:
运行代码:

package FIRST;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;

public class F {

	public static void main(String[] args)throws IOException
	{
     FileWriter output= new FileWriter("temp.txt");
     Random a=new Random();
     System.out.println("使用filewrit输入100000个数:");
     System.out.println("begin time :"+System.currentTimeMillis());
     for(int i=0;i<100000;i++)
     {
    	 output.write(a.nextInt(100)+"");
     }
     System.out.println("\nend time:"+System.currentTimeMillis());
 
	}

}

运行截图:
在这里插入图片描述

使用BufferedWriter:
运行代码:

package FIRST;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;

public class B {

	public static void main(String[] args) throws IOException
	{
	PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter("temp.txt")));
	Random a=new Random();
	System.out.println("使用BuffereWriter输入一万个数:");
	System.out.print("\nbegin time :"+System.currentTimeMillis());
	
	for(int i=0;i<100000;i++)
	{
		out.write(a.nextInt());
	}
			 
    System.out.println("\nend time :"+System.currentTimeMillis());
	}
}

运行截图:
在这里插入图片描述

2、编写一个文件,如果文件Exercise 19_2.dat 不存在,就创建一个名为Exercise 19_2.txt的文件。向这个文件追加新数据。使用DataOutputStream将100个随机生成的整数写入这个文件中。
运行代码:

package Exiercise;

import java.io.*;
import java.util.Random;

public class Exiercise {

	public static void main(String[] args)throws IOException
	{
	 File a=new File("B:\\Exercise19_2.dat");
	 Random b= new Random();
	 if(!a.exists())
	 {	 
		 DataOutputStream out=new DataOutputStream(new FileOutputStream("B:\\Exercise19_2.txt",true));
	   
	  for(int i=0;i<100;i++)
	    {
		// System.out.println(b.nextInt(101));
		 out.write(b.nextInt(101));
	    }
	 }
	}

}

运行截图:
在这里插入图片描述

3、假设已经使用DataOutputStream中的writeInt(int)创建一个名为Exercise 19_3.dat的二进制数据文件,文件包含数目不确定的整数,编写一个程序来计算这些整数的总和。
运行代码:

package Third;

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;

public class SUM {

	public static void main(String[] args)throws IOException
	{
	 DataOutputStream out=new DataOutputStream(new FileOutputStream("B:\\Exercise19_3.dat"));
	 Random a=new Random();
	 Scanner input=new Scanner(System.in);
	 System.out.println("enter the number:");
	 int n=input.nextInt();
	 int sum=0;
	 for(int i=0;i<n;i++)
	 {
		 
		 out.writeInt(a.nextInt(100));
		 sum+=a.nextInt(100);
	 }
	 System.out.println(sum);
	}

}

运行截图:
在这里插入图片描述

4、在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。
在电脑的的B盘建立一个bingboook.txt文件
在这里插入图片描述

里面内容为
在这里插入图片描述

运行代码:

package FORTH;

import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class FORTH {

	public static void main(String[] args) throws IOException
	{
	DataInputStream in =new DataInputStream(new FileInputStream("B:\\bingbook.txt"));
	int count=0;
	char c;
	long startTime=System.nanoTime();
	while(in.available()>0) 
	{
		c=(char)(in.readByte());
		if(c=='A') count++;
	
	}
    long timed=System.nanoTime()-startTime;
    System.out.println(timed);
    System.out.println(count);
	}

}	

运行截图:
在这里插入图片描述

5、编写一个Java应用程序,给当前的类所在的文件ReadExample.java添加行号拷贝到另一个文件temp.text。
创建java程序:
保存在目录
B:\JAVA\FIFTH\src\FIFTH\FIFTH.java
运行代码:

package FIFTH;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class FIFTH {

	public static void main(String[] args)throws IOException
	{
		FileInputStream in =new FileInputStream("src\\FIFTH\\FIFTH.java");
		FileWriter file =new FileWriter("temp.txt");
		FileReader fr =new FileReader("src\\FIFTH\\FIFTH.java");
		BufferedWriter out =new BufferedWriter(file);
		BufferedReader read=new BufferedReader(fr);
		String a;
		int count=1;
		out.write('0');
		out.write('1');
		out.write(' ');
		while((a=read.readLine())!=null)
		{
			count++;
			out.write(a);
			out.write("\r\n");
			out.write('0'+(count/10));
			out.write('0'+(count%10));
			out.write(' ');
			
		}
		in.close();
		out.close();
	}

}

运行截图:
在这里插入图片描述

6、(将对象和数组存储在文件中)编写一个程序,向一个名为Exercise19_5.dat的文件中存储一个含5个int值1,2,3,4,5的数组,存储一个表示当前时间的Date对象,存储一个double值5.5。
运行代码:

package SIX;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class SIX {

	public static void main(String[] args)throws FileNotFoundException,
	IOException,ClassNotFoundException
	{
		int []number= {1,2,3,4,5};
		ObjectOutputStream output=new ObjectOutputStream(new FileOutputStream("Exiercise19_5.dat"));
		output.writeDouble(5.5);
		output.writeObject(number);
		output.writeObject(new java.util.Date());
		output.close();
		ObjectInputStream input=new ObjectInputStream(new FileInputStream("Exiercise19_5.dat"));
		double a=input.readDouble();
		int []b=(int [])(input.readObject());
		java.util.Date data=(java.util.Date)(input.readObject());
		for(int i=0;i<b.length;i++)
		{
			System.out.print(b[i]+"   ");
			}
			System.out.println("\n");
			System.out.println(a+" "+data);
			
			


	}

}

运行截图:
在这里插入图片描述


(1)多次重复本文仅供参考学习,全文复制粘贴者后果自负;
(2)不提供详细源代码文件,有问题可以评论;
(3)少花时间在刷短视频上,多去阅读一些非计算机书籍的书例如《明朝那些事》、《神雕侠侣》,静下心来去阅读一些书,锻炼自己的注意力。斜体样式
(4)推荐歌曲:彩虹–周杰伦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值