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

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------



摘要(打印流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):内容和操作和字节数组流基本相同


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

你可能感兴趣的:(黑马程序员_温习 IO流四 (个人笔记)摘要(打印流PrintWriter(Stream)---序列流SwquenceInputStream----对象流ObjectInputStream(Outp)