一、管道流
  <span class="hljs-keyword">final</span> PipedOutputStream pps = <span class="hljs-keyword">new</span> PipedOutputStream();<br>  <span class="hljs-keyword">final</span> PipedInputStream pis = <span class="hljs-keyword">new</span> PipedInputStream(pps);<br>  <span class="hljs-keyword">new</span> Thread(<span class="hljs-keyword">new</span> Runnable() {<br>   <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">run</span><span class="hljs-params">()</span> </span>{<br>    <span class="hljs-keyword">try</span> {<br>     pps.write(<span class="hljs-string">"厉害了"</span>.getBytes(StandardCharsets.UTF_8));<br>     pps.close();<br>    } <span class="hljs-keyword">catch</span> (IOException e) {<br>     e.printStackTrace();<br>    }<br>   }<br>  }).start();<br>  <br>  <span class="hljs-keyword">new</span> Thread(<span class="hljs-keyword">new</span> Runnable() {<br>   <br>   <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">run</span><span class="hljs-params">()</span> </span>{<br>    <span class="hljs-keyword">try</span> {<br>     <span class="hljs-keyword">int</span> b3 = <span class="hljs-number">0</span>;<br>     <span class="hljs-keyword">byte</span>[] flush = <span class="hljs-keyword">new</span> <span class="hljs-keyword">byte</span>[<span class="hljs-number">1024</span>];<br>     <span class="hljs-keyword">while</span> ((b3=pis.read(flush)) != -<span class="hljs-number">1</span>) {<br>      System.out.println(<span class="hljs-keyword">new</span> String(flush, <span class="hljs-number">0</span>, flush.length));<br>     }<br>    } <span class="hljs-keyword">catch</span> (IOException e) {<br>     e.printStackTrace();<br>    }<br>   }<br>  }).start();
- 上面的管道流和Linux中的管道流是类似的
二、基本数据流
- 可以使用DataInputStream等及逆行基本数据的存储
  String address = <span class="hljs-string">"E:\\d05_gitcode\\Java\\newJava\\src\\com\\newJava\\newFile.txt"</span>;<br>  DataInputStream dis = <span class="hljs-keyword">new</span> DataInputStream(<span class="hljs-keyword">new</span> FileInputStream(address));<br>  <span class="hljs-keyword">byte</span> b = dis.readByte();<br>  System.out.println(b);<br>  <span class="hljs-keyword">short</span> s = dis.readShort();<br>  System.out.println(s);<br>  <span class="hljs-keyword">int</span> i = dis.readInt();<br>  System.out.println(i);<br>  <span class="hljs-keyword">long</span> l = dis.readLong();<br>  System.out.println(l);<br>  <span class="hljs-keyword">float</span> f = dis.readFloat();<br>  System.out.println(f);<br>  <span class="hljs-keyword">double</span> d = dis.readDouble();<br>  System.out.println(d);<br>  <span class="hljs-keyword">char</span> c = dis.readChar();<br>  System.out.println(c);<br>  <span class="hljs-keyword">boolean</span> bo = dis.readBoolean();<br>  System.out.println(bo);<br>  <br>  DataOutputStream dos = <span class="hljs-keyword">new</span> DataOutputStream(<span class="hljs-keyword">new</span> FileOutputStream(address));<br>  dos.writeByte(<span class="hljs-number">1</span>);<br>  dos.writeShort(<span class="hljs-number">2</span>);<br>  dos.writeInt(<span class="hljs-number">3</span>);<br>  dos.writeLong(<span class="hljs-number">4L</span>);<br>  dos.writeFloat(<span class="hljs-number">5.0f</span>);<br>  dos.writeDouble(<span class="hljs-number">6.0</span>d);<br>  dos.writeChar(<span class="hljs-number">7</span>);<br>  dos.writeBoolean(<span class="hljs-keyword">false</span>);
三、缓存流
- CPU运行速度是内存的几百倍,是磁盘的几百万倍,因此减少和磁盘的交互,就能提高IO的速度,我们在这两者之间提供一个buffer,缓存流(也就是BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter), 来增多一次性读写的数量,减少IO的次数。
四、打印流
- 我们所使用的System.out.println()方法就是打印流的一种
  StringWriter sw = <span class="hljs-keyword">new</span> StringWriter();<br>  <span class="hljs-keyword">try</span> (PrintWriter pw = <span class="hljs-keyword">new</span> PrintWriter(sw)) {<br>   pw.println(<span class="hljs-string">"lisudfos"</span>);<br>  }<br>  System.out.println(<span class="hljs-string">"lisudfos"</span>);
五、源码
- github路径:https://github.com/ruigege66/Java/blob/master/newJava/src/com/newJava
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客园:https://www.cnblogs.com/ruigege0000/
Original: https://www.cnblogs.com/ruigege0000/p/15734697.html
Author: 心悦君兮君不知-睿
Title: Java连载156-IO总结(三)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607936/
转载文章受原作者版权保护。转载请注明原作者出处!