java高级02--IO输入与输出--要点总结1

    技术2022-05-19  19

    java高级2 IO输入与输出

    1.RandomAccessFile类提供了众多的文件访问方法,支持“随机访问”方式。随机读写等长

    记录格式的文件时有很大优势。 2.文件时数据的静态存储形式,而流指数据传输时的形态。 3.流类分为两大类:节点流类和过滤流类。 4.有了垃圾回收器,为什么还要用close方法?java只能管理类对象,不能管理系统中的资源,需要调用close来通知系统结束流资源。 5.内存缓冲区,flush方法进行刷新,在调用close方法时系统也会刷新内存缓冲区。 6.文本文件和二进制文件。文本文件专用来存储字符,除此之外的文件称为二进制文件。 7.如果调用write方法,writer(**),如果写入字节数组的话,就会自动调用flush方法,如果只是写入字节或者字符串的话就不会调用flush,所以必须close或者进行flush。 8.PipedInputStream 和PipedOutputStream用于在应用程序中创建管道通信。具有强内聚弱耦合的特点。 有关管道的测试代码: import java.io.*; public class Test { public static void main(String[] args) { Sender se = new Sender(); Receiver re = new Receiver(); PipedOutputStream po = se.getPipeOut(); PipedInputStream pi = re.getPipeIn(); try { po.connect(pi); } catch (IOException e) { e.printStackTrace(); } se.start(); re.start(); } } class Sender extends Thread{ PipedOutputStream po = new PipedOutputStream(); public PipedOutputStream getPipeOut() { return po; } public void run() { try { po.write(new String("hahahhah").getBytes()); po.close(); } catch (IOException e) { e.printStackTrace(); } } } class Receiver extends Thread { PipedInputStream pi = new PipedInputStream(); public PipedInputStream getPipeIn() { return pi; } public void run() { try { byte[] buf = new byte[1024]; int len = pi.read(buf); System.out.println(new String(buf,0,len)); pi.close(); } catch (IOException e) { e.printStackTrace(); } } }

    9.ByteArrayInputStream,ByteArrayOutputStream用来支持类似内存虚拟文件或内存镜像文件的功能。 10.在Windows下,按下Ctrl+Z可以产生键盘输入流的结束标记,在linux下则是按Ctrl+D。 11.建议:要编程从键盘上读取一大段数据时,应该尽量将读取数据时的过程放在函数中完

    成,使用-1作为键盘输入的结束点。在该函数中编写的程序代码不应直接使用system.in读

    取数据,而是用一个inputstream类型的形式参数对象来读取数据,然后将system.in作为实

    参传递给inputstream类型的形参来调用该函数。


    最新回复(0)