IO流的打印流、序列流其他流总结


1、打印流:就是输出流,可以直接操作输入流和文件

printStream:字节流

特点:1、构造函数接收File对象、字符路径、字符输出流

  2、该对象具有特有的方法,print println可以打印任何数据类型的数据。

  3、特有的printf方法可以保持任意类型的数据表现形式的原样性,将数据输出到目的地,对于OutputStream父类中的write是将数据的最低字节写出去、

API:为其他的输出流添加了功能,使他们能够方法便的打印各种数据值表示形式,它还提供了其他两项功能。与其他输出流不同,printStream永远不会抛出IOException异常,而是异常情况仅设置可通过checkError方法测试的内部标识,另外,为了自动刷新,可以创建一个printStream,这以为着可在写入byte数组之后自动调用flush方法,可吊桶其中一个println方法,或者写入一个换行符或者字节(\r\n),printStream打印的所有字符都使用平台默认字符编码转换为字节,在需要写入字符而不是写入字节的情况下,应该使用printWriter类。

注意:能写一个整数、还能打印一个整数为什么?

Write(97);a

0000-0000  0000-0000 0000-0000 0110-0001 97

将最后一个八位写入到硬盘,也就是最后一个字节0110-0001记事本把这个二进制解析了,然后查表返回a;

Print(97);你看到是什么?目的里面就是什么?97

原理:先把97--->"97"--->"97".getBytes()(2个字节)

 

printWriter字符流:使用频繁,因为需要将数据从服务端打印到客户端

特点:

1、当操作的数据是字符时,可以选择printWriter比printStream更方便。

2、它的构造函数可以接收File对象,字符串路径、字节输出流、字符流。

3、可以在构造函数中、如果参数是输出流,那么可以通过指定另一个参数true来完成自动刷新,该方法只对println()有效。

实现代码:

BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));

PrintWriter out=new PrintWriter(new BufferedWriter( new FileWriter("out.txt")),true);

//加上true它能自动刷新,但是只能对println有效,需要高效,而且具备自动刷新的功能的只有字符流和字节流,所以需要封装为字符输出流。

String line=null;

while((line=buf,.readLine())!=null){

If("over".equals(line))

break;

}

out.println(line);

out.close();

//什么时候用?当需要保证数据表现的原样性时,就可以使用打印流的打印方法来完成,保证(表现形式)原样性的原理:其实就是将数据变成字符串,再进行写入操作。

 

2、序列流:按照一定顺序排列。

SequenceInputStream:对多个流进行合并。作用:将多个字节读取流合并成一个读取流。

特点:

1、将多个自己流合并成一个读取流,将多个源合并成一个源,操作起来方便。

2、需要的枚举接口可以通过collections.enumeration(collection);

练习:切割照片

注意:切割有两种方式:1、按照大小,2、按照文件个数。

3、操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值