最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实验9_Java输入输出流

来源:动视网 责编:小OO 时间:2025-10-02 18:39:51
文档

实验9_Java输入输出流

山西大学计算机与信息技术学院实验报告姓名学号专业班级计算机科学与技术课程名称Java实验实验日期2014/5/29成绩指导教师陈千批改日期实验名称实验9Java的输入输出流●实验目的1.理解I/O流的概念,掌握其分类2.掌握文本文件读写、二进制文件读写●实验内容1.分别使用FileWriter和BufferedWriter往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;使用:FileWriter程序源代码importjav
推荐度:
导读山西大学计算机与信息技术学院实验报告姓名学号专业班级计算机科学与技术课程名称Java实验实验日期2014/5/29成绩指导教师陈千批改日期实验名称实验9Java的输入输出流●实验目的1.理解I/O流的概念,掌握其分类2.掌握文本文件读写、二进制文件读写●实验内容1.分别使用FileWriter和BufferedWriter往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;使用:FileWriter程序源代码importjav
山西大学计算机与信息技术学院

实验报告

姓    名  学    号 专业班级计算机科学与技术 

课程名称                  Java实验实验日期2014/5/29
成    绩指导教师陈千批改日期
实验名称

      实验9  Java的输入输出流

●实验目的

1. 理解I/O流的概念,掌握其分类

2. 掌握文本文件读写、二进制文件读写

●实验内容 

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

使用:FileWriter

程序源代码

import java.io.*;

public class fileWriter {

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        long time = System.currentTimeMillis();// 当前时间

        FileWriter filewriter = new FileWriter("text");

        int number;

        for (int i = 0; i <= 10000; i++) {

            number = (int) Math.random() * 10000;

            filewriter.write(number + " ");

        }

        filewriter.close();

        time = System.currentTimeMillis() - time;// 时间差

        System.out.println("使用FileWriter用时为: " + time + "微秒");

    }

}

程序运行结果贴图

使用:BufferedWriter

程序源代码

import java.io.IOException;

public class BufferedWriter {

    public BufferedWriter(String string) {

        // TODO Auto-generated constructor stub

    }

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        long time = System.currentTimeMillis();// 当前时间

        BufferedWriter bufferedwriter = new BufferedWriter("bufferedwriter.txt");

        int number;

        for (int i = 0; i <= 10000; i++) {

            number = (int) Math.random() * 10000;

            bufferedwriter.write(number + " ");

        }

        bufferedwriter.close();

        time = System.currentTimeMillis() - time;// 时间差

        System.out.println("使用BufferedWriter用时为: " + time + "微秒");

    }

    private void write(String string) {

        // TODO Auto-generated method stub

    }

    private void close() {

        // TODO Auto-generated method stub

    }

}

程序运行结果贴图

2.课本P547,19.2 :编写一个文件,如果文件Exercise 19_2.dat 不存在,就创建一个名为Exercise 19_2.txt的文件。向这个文件追加新数据。使用二进制I/O将100个随机生成的整数写入这个文件中。

程序源代码

import java.io.DataOutputStream;

import java.io.FileOutputStream;

import java.io.IOException;

public class Exercise19_2 {

    public static void main(String[] args) throws IOException {

        DataOutputStream output = new DataOutputStream(new FileOutputStream(

                "Exercise19_2.dat", true));

        for (int i = 0; i < 100; i++)

            output.writeInt((int) (Math.random() * 100));

        output.close();

        System.out.println("Done");

    }

}

程序运行结果贴图

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

程序源代码

package test_9;

import java.io.DataInputStream;

import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

public class Exercise19_3 {

    public static void main(String[] args) throws IOException {

        System.out.println("准备写入......");

        File file = new File("Exercise19_3.dat");// 当前目录下创建一个文件

        OutputStream write = new FileOutputStream(file);// 开始向新建文件内写入

        DataOutputStream dos = new DataOutputStream(write);

        // 使用过滤流将写入单位扩大为对象

        int[] data = { 1, 2, 3, 4, 5 };

        // 向文件中写五个数据

        for (int i = 0; i < data.length; i++) {

            dos.writeInt(data[i]);

        }

        dos.close();

        System.out.println("写入结束.....");

        System.out.println("开始读取......");

        InputStream input = new FileInputStream(file);// 输出流

        DataInputStream filter = new DataInputStream(input);// 过滤流

        int result = 0;

        while (true) {

            try {

                result += filter.readInt();

            } catch (Exception e) {

                break;

            }

        }

        System.out.println("所得的计算结果为: " + result);

        System.out.println("读取结束......");

    }

}

程序运行结果贴图

4.在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母“A”的个数,并显示统计的时间。

程序源代码

import java.io.FileInputStream;

import java.io.IOException;

public class CountA {

    public static void main(String[] args) throws IOException {

        long time = System.currentTimeMillis();

        String filename = "J:\\\\bigbook.txt";

        FileInputStream f = new FileInputStream(filename);

        int count = 0;

        int c;

        while ((c = f.read()) != -1) {

            if (c == 'A') {

                count++;

            }

        }

        f.close();

        System.out.println("bigbook.txt中A的个数为:" + count);

        time = System.currentTimeMillis() - time;

        System.out.println("统计A的时间为: " + time);

    }

}

程序运行结果贴图

5.编写一个Java应用程序,给当前的类所在的文件ReadExample.java添加行号拷贝到另一个文件temp.text。

 需要拷贝的源文件的内容为:

  

程序源代码

import java.io.IOException;

public class BufferedWriter {

    public BufferedWriter(String string) {

        // TODO Auto-generated constructor stub

    }

    public static void main(String[] args) throws IOException {

        // TODO Auto-generated method stub

        long time = System.currentTimeMillis();// 当前时间

        BufferedWriter bufferedwriter = new BufferedWriter("bufferedwriter.txt");

        int number;

        for (int i = 0; i <= 10000; i++) {

            number = (int) Math.random() * 10000;

            bufferedwriter.write(number + " ");

        }

        bufferedwriter.close();

        time = System.currentTimeMillis() - time;// 时间差

        System.out.println("使用BufferedWriter用时为: " + time + "微秒");

    }

    private void write(String string) {

        // TODO Auto-generated method stub

    }

    private void close() {

        // TODO Auto-generated method stub

    }

}

程序运行结果贴图:

可以看到 在当前路径下,生成了一个拷贝文件temp.txt

文件内容为:

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

程序源代码

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

public class Exercise19_5 {

    public static void main(String[] args) throws IOException,

            ClassNotFoundException {

        // TODO Auto-generated method stub

        int[] number = { 1, 2, 3, 4, 5 };

        ObjectOutputStream output = new ObjectOutputStream(

                new FileOutputStream("Exercise19_5_dat"));

        output.writeObject(number);

        output.writeDouble(5.5);

        output.writeObject(new java.util.Date());

        output.close();

        ObjectInputStream input = new ObjectInputStream(new FileInputStream(

                "Exercise19_5_dat"));

        System.out.println("存储的数组为: ");

        int[] readNumber = (int[]) (input.readObject());

        for (int i = 0; i < readNumber.length; i++) {

            System.out.print(readNumber[i] + " ");

        }

        double num = input.readDouble();

        java.util.Date date = (java.util.Date) (input.readObject());

        System.out.println("\\ndouble型的数为: " + num + "\\n" + "日期为: " + date);

    }

}

程序运行结果贴图

P548 19.12(组合文件)编写一个工具程序,使它能够用下面的命令,将文件组合在一起构成一个新文件:

java Exercise19_12 SourceFile1…SourceFilen TargetFile

这个命令将 SourceFile1,…,SourceFilen合并为TargetFile。

程序源代码

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class Exercise19_12 {

    public static void main(String[] args) throws Exception {

        // Check usage

        if (args.length < 2) {

            System.out

                    .println("Usage: java Exercise19_12 SourceFile1 ... SoureFilen TargetFile");

            System.exit(0);

        }

        // The last file TargetFile is for output

        BufferedOutputStream output = new BufferedOutputStream(

                new FileOutputStream(new File(args[args.length - 1])));

        for (int i = 0; i < args.length - 1; i++) {

            BufferedInputStream input = new BufferedInputStream(

                    new FileInputStream(new File(args[i])));

            int value;

            while ((value = input.read()) != -1) {

                output.write(value);

            }

            input.close();

        }

        output.close();

    }

}

程序运行结果贴图

文档

实验9_Java输入输出流

山西大学计算机与信息技术学院实验报告姓名学号专业班级计算机科学与技术课程名称Java实验实验日期2014/5/29成绩指导教师陈千批改日期实验名称实验9Java的输入输出流●实验目的1.理解I/O流的概念,掌握其分类2.掌握文本文件读写、二进制文件读写●实验内容1.分别使用FileWriter和BufferedWriter往文件中写入1万个随机数,比较用时的多少?(用时采用方法System.currentTimeMillis())求时间差;使用:FileWriter程序源代码importjav
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top