一、实验目的:
学会异常处理与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)推荐歌曲:彩虹–周杰伦