0%

Java12.23

…implement Externalizable
实现readExternal(ObjectInput in)和writeExternal(ObjectOutput out)
函数中调用(out.writeObject()/in.readObject())

readExternal()需要无参public构造方法

StreamTokenizer(Reader r)

Reader:以字符为单位的输入流

  • 对输入流进行解析,调用nextToken()
  • public int ttype,ttype的常数值:TT_WORD(字符串存入String nval),TT_NUMBER,TT_EOL

A TreeMap can keep keys in sorted order.
Counter()计数器、Set、Collection

StringTokenizer

正则表达式

(java.util.regex)
Pattern p=Pattern.compile(“…”)
Matcher m=p.matcher(“……”)
m.find()

Scanner文本扫描器

构造方法(File)(String)(InputStream)

网络编程

  • 使用URL
  • TCP编程
  • UDP编程

    URL类

    统一资源定位符(Uniform Resource Locator)
    构造方法
    (“http://www.nankai.edu.cn")
    (String Protocol(协议),String host,int port(缺省80端口),String file)

获取信息:getProtocol(),getHost(),getRef(),getPort(),getFile()…

利用URL获取网络资源
  • 创建URL对象
  • 使用URL对象的使用openStream(),返回InputStream
  • 从InputStream读入信息

    InetAddress类

    代表一个IP地址
    创建方法:static InetAddress getByName(“…”)
    获取本机地址:
  • getLocalHost()
  • getByName(null)
  • getByName(“127.0.0.1”)
  • getByName(“localhost”)
TCP:有连接的、可靠的数据流的传输有通信协议

使用:
Socket类(进行通讯)、ServerSocket类(提供监听)
(客户端只使用Socket,服务器端两个都需要)

Server端:

一个服务器可服务多个客户端->多客户机制->多线程
ServerSocket(int port,int count)
ServerSocket.accept(),返回Socket.若未返回,则线程阻塞
OutputStream<==>InputStream
Socket.getInputStream()

Client端:

Socket(String addr,int port)

UDP:无连接的、数据报的方式

使用DatagramPacket类(报文)、DatagramSocket类(发送或接收)

DatagramPacket构造:
  • 接收:(byte[] recvBuf,int readLength)
  • 发送:(byte[] sendBuf,int readLength,InetAddress,int port)
    socket.send(packet)
    socket.receive(packet)
    广播通信
    MulticastSocket