1.BIO示例
package com.wenbo.bioTest;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* @Auther: 13213
* @Date: 2021/1/6 18:03
* @Description:
*/
public class BioServer {
public static void main(String[] args) throws Exception {
ExecutorService executorService = Executors.newCachedThreadPool();
ServerSocket serverSocket = new ServerSocket(6666);
System.out.println("服务器启动了!");
while (true){
System.out.println("等待连接!");
final Socket socket = serverSocket.accept();
System.out.println("客户端已连接!");
executorService.execute(new Runnable() {
public void run() {
handle(socket);
}
});
}
}
public static void handle(Socket socket){
try {
byte[] bytes = new byte[1024];
InputStream inputStream = socket.getInputStream();
while (true){
System.out.println("等待发送消息!");
int len = inputStream.read(bytes);
System.out.println("已发送消息!");
if (len != -1){
System.out.println(new String(bytes,0,len));
}else {
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2. NIO示例
package com.wenbo.nioTest;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
/**
* @Auther: 13213
* @Date: 2021/1/7 16:45
* @Description:
*/
public class NioFileChannel {
public static void main(String[] args) throws Exception {
String str = "hello,wuwenbo!";
FileOutputStream outputStream = new FileOutputStream("f:\\wuwen.txt");
FileChannel channel = outputStream.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.put(str.getBytes());
buffer.flip();
channel.write(buffer);
outputStream.close();
}
}