第十四章I/O输入输出

1.Java中流的分类有哪些?

流从流动方向上看:一般分为输入流和输出流

  • 输入流:如System.in是一个InputStream类型输入流
  • 输出流:如System.out 是一个PrintStream类型输出流

从读取类型上分:一般分为字节流和字符流

  • 字节流:如System.in是一个InputStream类型字节流
  • 字符流:如new InputStreamReader(System.in)是一个字符流对象

流从发生的源头:分为节点流和过滤流类

  • 节点流:直接操作目标设备对应的流                    
    • 如文件流,标准输入输出流
  • 过滤流:继承带有关键字Filter的流                  
    •  用于包装操作节点流,方便读写各种类型的数据

2.字节流InputStream和OutputStream的子类分别有哪些?请举例说明其使用场景。与其对应的字符流分别有哪些?

  • 文件流 FileInputStream/FileOutputStream 
    • 通过指定文件路径的方式
  • 字节数组流 ByteArrayInputStream/ByteArrayOutputStream
    • 在字节数组和流之间搭建桥梁
  • 管道流 PipedInputStream/PipedOutputStream
    • 读取管道内容
  • 对象流 ObjectInputStream/ObjectOutputStream
    • 用来恢复被序列化的对象
  • 过滤流 FilterInputStream/FilterOutputStream
    • 在读写数据的同时还可以对数据进行特殊处理
  • 缓冲流 BufferedInputStream/BufferedOutputStream
  • 数据流 DataInputStream/DataOutputStream
  • 打印流 PrintStream

3.字节流与字符流的转化是怎样的?Java对此提供了哪些支持?

输入字节流转为字符流需要用到inputstreamReader的构造方法:

  • InputStreamReader(InputStream in)
    • InputStreamReader ins = new InputStreamReader(System.in);
    • InputStreamReader ins = new InputStreamReader(new FileInputStream(“test.txt”));

输出字符流转为字节流用到OutputStreamWriter或PrintWriter的构造方法:

  • OutputStreamWriter(OutputStream out)
    • OutputStreamWriter outs = new OutputStreamWriter(new FileOutputStream(“test.txt”));
  • PrintWriter(OutputStream out)

4.Java中的过滤流(流的装配)有什么作用?请举例说明常用的过滤流。

  • 过滤流BufferedInputStream和BufferedOutputStream, 缓存作用,用于装配文件磁盘、网络设备、终端等读写开销大的节点流,提高读写性能
  • 过滤流BufferedReader的使用:用于缓存字符流,可以一行一行的读
  • 过滤流:   DataInputStream和DataOutputStream, 可从字节流中写入、读取Java基本数据类型,不依赖于机器的具体数据类型,方便存储和恢复数据
  • PrintWriter的使用:可以向该字符流中写入Java基本数据类型,用于包装输出字符流类对象

5.什么是对象的序列化和反序列化?Java对此提供了哪些支持? 

  • 序列化(Serialization):将实现了Serializable接口的对象转换成一个字节序列,并能够在以后将这个字节序列完全恢复为原来的对象,后者又称反序列化。
  • Java对序列化的支持:ObjectInputStream类和ObjectOutputStream

6.Java的File类表示什么?有什么作用?

  • File类不仅指系统中的文件,也指目录,因为目录也是特殊的文件。
  • 作用:表示一个文件对象,文件(或目录)路径名字的抽象表示。

7.Java对文件的读写分别提供了哪些支持?

  • File 文件(或目录)路径名字的抽象表示
  • FileDescriptor 代表一个打开文件的文件描述
  • FileFilter & FilenameFilter 接口,列出满足条件的文件,用于:
    • File.list(FilenameFilter fnf)
    • File.listFiles(FileFilter ff)
    • FileDialog.setFilenameFilter(FilenameFilter fnf)
    • FileDialog是java.awt包中的类
  • FileInputStream 以字节流的形式顺序读文件
  • FileReader 以字符流的形式顺序读文件
  • FileOutputStream 以字节流的形式顺序写文件
  • FileWriter 以字符流的形式顺序写文件
  • RandomAccessFile提供对文件的随机访问支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值