day23作业-韩明琰

 

IO流作业

一、              填空题

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

 

二、              简答题

  1. 输入流和输出流的联系和区别,字符流和字节流的联系和区别

两者都是对数据进行传输的,输入流是将数据读取到内存,输出流是将数据从内存写到硬盘;

两者都是将数据转换成对应类型进行传输,字符流只能传输文本文档,字节流都可以,但是字节流传输中文时可能造成乱码; 

  2.列举常用的字节输入流和字节输出流并说明其特点,至少5对。

ByteArrayInputStream, FileInputStream, FilterInputStream,      InputStream, ObjectInputStream, PipedInputStream,

ByteArrayOutputStream, FileOutputStream, FilterOutputStream, OutputStream, ObjectOutputStream, PipedOutputStream

 

  3.说明缓冲流的优点和原理

缓冲流可以一次性读取大量数据,减少数据传输次数 增加传输速度

原理:缓冲流将读取到的数据存入自身的缓冲区内存 ,内存满后再传入到文件.

 

三、              编码题

  1. 实现字符串和字节数组之间的相互转换。必如将字符串“北京最课程bjzkc”转换为字节数组,并将字节数组再转换回字符串。
复制代码
package com.zuikc.homeWork;

 

public class Test1 {

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

//                  1.            实现字符串和字节数组之间的相互转换。必如将字符串“北京最课程bjzkc”转换为字节数组,并将字节数组再转换回字符串。

                       String str = "北京最课程bjzkc";

                       byte[] by = str.getBytes();

                       for (byte b : by) {

                                       System.out.println(b);

                       }

                       String s = new String(by);

                       System.out.println(s);

       }

}
复制代码

 

 

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

复制代码
package com.zuikc.iosteam;

 

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

 

public class Demo {

 

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

FileInputStream fis = new FileInputStream("谢谢你.mp4");

                             FileOutputStream fos = new FileOutputStream("谢谢你copy.mp4");

                             byte[] arr = new byte[1024*8];

                             int len;

                             while((len = fis.read(arr)) != -1) {

                                             fos.write(arr, 0, len);

                             }

                            

                             fis.close();

                             fos.close();

 

                             FileInputStream fis = new FileInputStream("谢谢你.mp4");

                             FileOutputStream fos = new FileOutputStream("谢谢你copy.mp4");

                            

                             BufferedInputStream bis = new BufferedInputStream(fis);

                             BufferedOutputStream bos = new BufferedOutputStream(fos);

                            

                            

                             int b;

                             while((b = bis.read()) != -1){

                                             bos.write(b);

                             }

                            

                             bis.close();

                             bos.close();

             }

 

}
posted @ 2018-08-11 21:35  失忆*  阅读(172)  评论(0编辑  收藏  举报