计算机网络课设报告,java平台实现,Java;HTTP;Web服务器
主类),调用start()方法启动线程的run()方法不同于一般的调用方法,调用一般方法时,必须等到一般方法执行完毕才能够返回start()方法,而启动线程的run()方法后,start()告诉系统该线程准备就绪可以启动run()方法后,就返回start()方法执行调用start()方法语句下面的语句,这时run()方法可能还在运行,这样,线程的启动和运行并行进行,实现了多任务操作。
2.2.2 I/O字节流操作
1)Java中使用流的方式处理数据,基本的处理类为InputStream(字节读入流)和OutputStream(字节输出流)。
2)可以使用各种过滤流对流数据进行过滤,实现各种附加功能。
3)对字节流进行转换和包装可以获得字符流,字符流的基本处理流为Reader(字符读入流)和Writer(字符输出流)。
a.字节流:
InputStream:int read()读入流中的一个字节并返回,数据存放在int的低8位中;int read(byte[])读入流中的若干个字节,存放在byte[]中,返回读入字节的数量;int read(byte[],int,int)读入流中的若干个字节,存放在byte[]中从第一个int参数开始(索引),最大长度为第二个int参数的区间内。
OutputStream:flush()将输出缓冲区中的信息写到真正的输出设备。
调用方法:
① 输出缓冲区满:自动调用;
② 调用close()时先调用flush():自动调用;
③ 手动调用flush()
最常见的情况是产生异常时,虽然在finally中会对流执行close(),但在异常条件下,close()能保证对流的关闭,但在调用flush()时会有漏洞。
b.字符流:
优点:操作文本数据时比较直观,读入和写出都以char为基本单位。
缺点:底层依然以字节流方式操作,所以在任何情况下都必须有转换的过程,效率相对较低。操作二进制数据时会存在编码问题,一般不使用字符流操作二进制数据。
InputStreamReader:将字节读入流转为字符读入流。
InputStreamReader(InputStream):使用默认字符集(取决的JVM)将InpustStream转为InputStreamReader。