学习笔记-基础知识11-IO流(2)

1 篇文章 0 订阅
1 篇文章 0 订阅

IO流(2)

1.内存操作流
文件操作流是以文件的输入输出为主的,当输出的位置变成了内存,那么就称为内存操作流。要使用内存流完成输入和输出操作。
操作内存流的时候:读取出来,注意一定要把真正的数据用toByteArray或者toCharArray将数据读出来。
如果程序运行过程中要产生一些临时文件,可采用虚拟文件方式实现;
直接操作磁盘的文件很耗性能,使用内存流可以提升性能;jdk里提供了内存流可实现类似于内存虚拟文件的功能。
ByteArrayInputStream:将内容写到内存中CharArrayReader
ByteArrayOutputStream:将内存中的数据写出CharArrayWriter
ByteArrayInputStream:构造方法:
public ByteArrayInputStream(byte[] buf):全部内容
public ByteArrayInputStream(byte[] buf,int offset,int length):指定范围的内容

内存流操作:先把数据写到内存中去,然后再从内存中读取出来!提升了性能!

2.打印流
PrintWriter和PrintStream
打印流有非常好的打印功能,可以打印任何的数据类型。如,整数,小数,字符串等。
PrintStream类的构造:
public PrintStream(File file) throws FileNotFoundException
public PrintStream(OutputStream out)
虽然PrintStream是OutputStream的子类,但是在实例化的时候依然需要一个OutputStream的对象。
PrintWriter和PrintStream都属于输出流,分别针对字符和字节。
PrintWriter和PrintStream重载的print()和println()用于多种数据类型的输出。
print()里的参数不能为空;println()可以
PrintWriter和PrintStream输出操作不抛出异常
PrintStream调用println方法有自动flush功能;

3.格式化输出
Java5后,PrintStream类多了printf()方法用于格式化输出操作。
但是格式化输出的时候必须指定输出数据的类型:
(构造方法)
PrintStream format(String fo, Object… args) :
使用指定格式字符串和参数将格式化字符串写入此输出流中。
当然你也可以全部使用“%s”来表示所有的数据类型!
格式:需要格式% 占位符

4.标准流
标准输入流: System.in 默认表示的是键盘录入
标准输出流: System.out 默认表示的是屏幕输出

5.Scanner(简单文本扫描器)
Scanner(File source)构造一个新的Scanner,它生成的值是从指定文件扫描的。
实现了Iterable接口

6.缓冲流
缓冲流要“套接”在相应的节点流之上,对读写的数据提供了缓冲的功能,提高了读写效率,同时增加了一些新的方法。
四种缓冲流
BufferedReader(Reader in)
BufferedReader(Reader in,int sz)//sz 表示自定义缓冲区大小
BufferedWriter(Writer out)
BufferedWriter(Writer out,int sz)
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in,int sz)
BufferedOutputStream(OutputStream out)
BufferedOutputStream(OutputStream out,int sz)

BufferedReader提供readLine方法用于读取一行字符串。
BufferedWriter提供了newLine方法用于写入一个行分隔符。等价于.writer("\r\n");
对于输出的缓冲流,写出的数据会先在内存中缓冲,使用flush方法将会使内存中的数据立刻写出。

7.合并流(SequenceInputStream)
SequenceInputStream:将两个文件的内容合并成一个文件
方法:
SequenceInputStream(InputStream s1, InputStream s2):
根据两个字节输入流对象来创建合并流对象。
谁放在前面,谁就先打印出来.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值