• 0801作业


    ---恢复内容开始---


    IO流作业
    一、填空题
    1.Java IO流按操作类型分为 字节流 和 ____字符流_______ 。
    2.输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据,read()
    方法给程序提供了一个从输入流中读取数据的基本方法。
    3.read方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0-255之间的一个整数),如果到达源的末尾,该方法返回 -1 。
    4.Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准错误输出System.err和标准输出 ____system.out________________。
    5.Java IO体系中,__InputStream__________________是字节输入流,不仅提供了存取所有Java基础类型数据(如:int,double 等)和String的方法,也提供了提供存取对象的方法。
    6.Java IO体系中,____OutputStream________________是字节输出流,提供了可以存取所有Java基础类型数据(如:int,double 等)和String的方法,但没有提供存取对象的方法。

    二、简答题
    1.输入流和输出流的联系和区别,字符流和字节流的联系和区别
    流根据流向分为输入流和输出流,输入流用来输入数据到java程序,输出流用来从java程序中输出数据 二者是上下游的关系
    流根据操作类型又分为字符流和字节流.字节流可以操作任何数据,而字符流只能操作纯字符数据
    3.列举常用的字节输入流和字节输出流并说明其特点,至少5对。
    FileInputStream BufferedInputStream AutoInputStream ObjectInputStream FilterInputStream
    FileOutputStream BufferedOutputStream AutoOutputStream ObjectOutputStream FilterOutputStream

    4.说明缓冲流的优点和原理
    缓冲流的优点是:数据传输速度快
    原理:一次传入一大组数据,存入缓存区,等程序需要再传输时,不用再找文件,因此快
    三、编码题
    1.实现字符串和字节数组之间的相互转换。必如将字符串“北京最课程bjzkc”转换为字节数组,并将字节数组再转换回字符串。

    package com.zuikc.chario;
    public class Test1 {
        public static void main(String[] args) throws IOException {
            String str = "北京最课程bjzkc";
            byte[] arr = str.getBytes();
            String str1 = new String(arr);
            
            System.out.println(arr);
            System.out.println(str1);
        }
    
    }

    2.分别使用文件流和缓冲流复制一个长度大于100MB的视频文件,并观察效率的差异。

    package com.zuikc.chario;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    public class Tested {
    
        public static void main(String[] args) throws IOException {
            FileInputStream fis = new FileInputStream("Video_2018-05-25_165621.wmv");
            FileOutputStream fos = new FileOutputStream("copy.wmv");
            
            int b;
            while((b= fis.read())!=-1) {
                fos.write(b);
            }
            fis.close();
            fos.close();
        }
    
    }
    package com.zuikc.chario;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    
    public class Tested1 {
    
        public static void main(String[] args) {
            BufferedInputStream bis = new BufferedInputStream("Video_2018-05-25_165621.wmv");
            BufferedOutputStream bos = new BufferedOutputStream("copy.wmv");
            
            int b;
            while((b = bis.read())!= -1) {
                bos.write(b);
            }
            bis.close();
            bos.close();
        }
    }

    四、可选题
    1.使用IO包中的类读取D盘上exam.txt文本文件的内容,每次读取一行内容,将每行作为一个输入放入ArrayList的泛型集合中并将集合中的内容使用加强for进行输出显示。

    package com.zuikc.chario;
    
    import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    
    public class Demo4_Test1 {
    /*1.读取文本文件 用FileReader 而且每次读取一行
     * 2.将每行放入list集合中,使用for循环输出
     */
        public static void main(String[] args) throws IOException {
            BufferedReader br = new BufferedReader(new FileReader("D:\exam.txt"));
            
            ArrayList<String> list = new ArrayList<>();
            String line;
            while((line = br.readLine())!= null) {
                list.add(line);        
            }
            br.close();
            for (String string : list) {
                System.out.println(string);
            }
        }
    
    }


    2.由控制台按照固定格式输入学生信息,包括学号,姓名,年龄信息,当输入的内容为exit退出;将输入的学生信息分别封装到一个Student对象中,再将每个Student对象加入到一个集合中,要求集合中的元素按照年龄大小正序排序;最后遍历集合,将集合中学生信息写入到记事本,每个学生数据占单独一行。

    ---恢复内容结束---

  • 相关阅读:
    算法 在一个递增的二维数组中查找一个数
    java web----网络编程基础
    java----集合(Map)
    java----集合(List、set)
    java----数组
    java面试----1
    java----NIO
    java----commons-io
    java----文件操作
    爬虫----爬取答案
  • 原文地址:https://www.cnblogs.com/zhangzheng1989/p/9404516.html
Copyright © 2020-2023  润新知