拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 Java连载156-IO总结(三)

Java连载156-IO总结(三)

白鹭 - 2022-02-16 2057 0 0

一、管道流

  final PipedOutputStream pps = new PipedOutputStream();
  final PipedInputStream pis = new PipedInputStream(pps);
  new Thread(new Runnable() {
   public void run() {
    try {
     pps.write("厉害了".getBytes(StandardCharsets.UTF_8));
     pps.close();
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }).start();
  
  new Thread(new Runnable() {
   @Override
   public void run() {
    try {
     int b3 = 0;
     byte[] flush = new byte[1024];
     while ((b3=pis.read(flush)) != -1) {
      System.out.println(new String(flush, 0, flush.length));
     }
    } catch (IOException e) {
     e.printStackTrace();
    }
   }
  }).start();
  • 上面的管道流和Linux中的管道流是类似的

二、基本资料流

  • 可以使用DataInputStream等及逆行基本资料的存盘
  String address = "E:\\d05_gitcode\\Java\\newJava\\src\\com\\newJava\\newFile.txt";
  DataInputStream dis = new DataInputStream(new FileInputStream(address));
  byte b = dis.readByte();
  System.out.println(b);
  short s = dis.readShort();
  System.out.println(s);
  int i = dis.readInt();
  System.out.println(i);
  long l = dis.readLong();
  System.out.println(l);
  float f = dis.readFloat();
  System.out.println(f);
  double d = dis.readDouble();
  System.out.println(d);
  char c = dis.readChar();
  System.out.println(c);
  boolean bo = dis.readBoolean();
  System.out.println(bo);
  
  DataOutputStream dos = new DataOutputStream(new FileOutputStream(address));
  dos.writeByte(1);
  dos.writeShort(2);
  dos.writeInt(3);
  dos.writeLong(4L);
  dos.writeFloat(5.0f);
  dos.writeDouble(6.0d);
  dos.writeChar(7);
  dos.writeBoolean(false);
156.2
156.2

三、快取流

  • CPU运行速度是存储器的几百倍,是磁盘的几百万倍,因此减少和磁盘的互动,就能提高IO的速度,我们在这两者之间提供一个buffer,快取流(也就是BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter), 来增多一次性读写的数量,减少IO的次数, 156.1

四、打印流

  • 我们所使用的System.out.println()方法就是打印流的一种
  StringWriter sw = new StringWriter();
  try (PrintWriter pw = new PrintWriter(sw)) {
   pw.println("lisudfos");
  }
  System.out.println("lisudfos");

五、原始码

  • github路径:https://github.com/ruigege66/Java/blob/master/newJava/src/com/newJava
  • CSDN:https://blog.csdn.net/weixin_44630050
  • 博客园:https://www.cnblogs.com/ruigege0000/
  • 欢迎关注微信公众号:傅里叶变换,个人账号,仅用于技术交流 1000.0
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *