这是一个服务端的Java代码,用于接收客户端发送的文件并将其写入磁盘。
首先,使用ServerSocket创建一个服务器套接字,并指定监听的端口号为9999。
接着,通过accept()方法等待客户端的连接。一旦有客户端连接上来,就会返回一个Socket对象,可以通过这个Socket对象来获取客户端发送的数据。
然后,通过获取Socket对象的InputStream,创建一个BufferedInputStream对象,并将其用于读取客户端发送的文件内容。
接下来,创建一个BufferedOutputStream对象,并将其用于将接收到的文件写入磁盘中。在这里,将文件写入了"F:\\io流读写测试\\2023\\2.jpeg"路径下。
public static void main(String[] args) {
ServerSocket serverSocket = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
serverSocket = new ServerSocket(9999);
Socket accept = serverSocket.accept();
InputStream inputStream = accept.getInputStream();//获取监听内容
bis = new BufferedInputStream(inputStream);//将获取到的内容存入缓存池
bos = new BufferedOutputStream(new FileOutputStream(new File("F:\\io流读写测试\\2023\\2.jpeg")));//说明接收到的文件存储路径
然后,使用一个字节数组来缓存读取到的数据,并使用read()方法从输入流中读取数据到字节数组中。然后将字节数组中的内容写入磁盘,并再次刷新缓冲区。
接着,使用while循环不断地读取和写入数据,直到读取到的数据为-1,表示文件传输完毕。
最后,关闭输入流、输出流和服务器套接字。
byte[] bytes = new byte[1024];
int read = bis.read(bytes);
while (read != -1) {//按照多少传输速度进行存储
bos.write(bytes, 0, read);//写入到磁盘中去
bos.flush();//每次刷新
read = bis.read(bytes);
}
System.out.println("文件上传服务端成功~");
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
try {
bos.close();
bis.close();
serverSocket.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
如果发生任何异常,将抛出RuntimeException。
这段代码的功能是在服务器上接收到文件并将其存储在指定路径上。