黑马程序员_温习 IO流四 (个人笔记)摘要(打印流PrintWriter(Stream)---序列流SwquenceInputStream----对象流ObjectInputStream(Outp

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------



摘要(打印流PrintWriter(Stream)---序列流SwquenceInputStream----对象流ObjectInputStream(OutputStream)----管道流PipedInputStream(OutputStream)



----随机访问流RandomAccessFile-----基本数据类型流DataInputStream(OutputStream)------字节数组流ByteArrayInputStream(OutputStream)


----字符数组流:charArrayReader(Writer)-----字符串流:StringReader(Writer)




打印流:为其他输出流添加功能,使他们方便的打印各种数据值表示形式


|--字符打印刘PrintWriter


|--字节打印流PrintStream


构造函数可以接收的参数类型:
|--File对象 File
|--字符串路径 String
|--字节输出流 OutputStream


例:


摘要:PrintWriter可实现自动刷新如 ("sss",true) 标记为true 就是自动刷新
还有自动换行 println命令, 大写命令toUpperCase 都
封装在了PrintWriter流中。使用起来比较方便


BufferedReader  bufr  =new BufferedReader(new InputStreamReader(System.in))//键盘录入


PrintWriter out = new PrintWriter(System.out); //打印到屏幕
PrintWriter out = new PrintWriter(System.out,true); //打印到屏幕,自动刷新
PrintWriter out = new PrintWriter("Demo.txt"); //打印到文件
PrintWriter out = new PrintWriter(new FileWriter("Demo.txt"),true);//将数据传入字符流中,并自动刷新
String line = null;
while ((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
out.println(line.toUpperCase());//大写
}
out.close()
bufr.close();


系列流(合并流):SequenceInputStream:表示其他输入流的逻辑串联


合并时需要用到集合中的接口:Enumeration


合并流原理图例:




对象流ObjectInputStream(OutputStream):将Java对象的基本数据类型和图形写入流(字节流)
通过读节流读取,或者存入硬盘是实现对象的持久储存


Serializable(标记接口):给所要储存的对象加一个身份标示(签名),只有实现此类才可被储存对象
类中无方法,实现后自动生成也可手动生成
|--static final long serialVersion UID = xL;//x为任意数字


管道流PipedInputStream(OutputStream):IO和多线程相结合的流
输入输出可以直接进行链接,通过结合线程使用






随机访问流RandomAccessFile:随机访问文件,自身具备读写的方法(内部封装了一个数组,通过指针对数组元素进行操作)
其实完成读写的原理就是因为内部封装了字节输入流和字节输出流
只能操作文件,且有规定操作模式:
|--只读:r
|--读写:rw
|--...不常用
|--...不常用


常用方法:
|--获取指针位置:long getFilePointer
|--改变指针位置: void seek(long pos) 
|--写入(多种方式):void write(多种方式)






基本数据类型流DataInputStream(OutputStream)


例:
DataOutputStream dos = new DataOutputStream(new FileOutputStream("Demo.txt"));//创建基本数据流,指定写入文件


dos.writeInt(234); //写入整数
dos.writeBoolean(true); //写入布尔型
dis.writeDouble(333.5679); //写入Bouble型
dos.writeUTF("你好"); //用UTF - 8 编码将你好写入




字节数组流ByteArrayInputStream(OutputStream)


ByteArrayInputStream(字节数组输入流):在构造时需要接收数据源,而且数据源是一个字节数组


ByteArrayOutputStream(字节数组输出流):构造时不用定义数组,因为其内部已经封装了一个可变长度的数组




字符数组流:charArrayReader(Writer):内容和操作和字节数组流基本相同


字符串流:StringReader(Writer):内容和操作和字节数组流基本相同


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值