今天删了一个玩了两三年的手游,这个手游是圣斗士星矢重生,属于是怀旧的游戏吧,要说好玩呢,可能对于我这种小时候喜欢看这部动画片的来说还算可以。当然,对于那些喜欢吃鸡之类的,可能就觉得这种游戏无聊至极吧。不管怎样,这个游戏好多年了,也不想玩了。
今天的文章是一个图片上传代码的例子,主要使用了 FileInputStream 和 FileOutputStream 两个类,当然了 ServerSocket 和 Socket 这两个类是不会少的。
服务端代码
首先来看看服务端的代码,代码如下:
public static void main(String[] args) throws IOException {
// 创建服务端对象,开放端口
ServerSocket serverSocket = new ServerSocket(10086);
// 创建服务端的 socket
Socket server = serverSocket.accept();
// 获取输入流对象
InputStream inputStream = server.getInputStream();
// 创建文件输出对象
FileOutputStream fileOutputStream = new FileOutputStream("321.jpg");
int temp = 0;
while ((temp = inputStream.read()) != -1) {
fileOutputStream.write(temp);
}
server.shutdownInput();
// 上传图片结束之后给予客户端响应
OutputStream outputStream = server.getOutputStream();
outputStream.write("上传成功".getBytes());
server.shutdownOutput();
// 关闭操作
outputStream.close();
fileOutputStream.close();
inputStream.close();
server.close();
serverSocket.close();
}
代码中的 InputStream 用来接收客户端发来的文件数据,FileOutputStream 用来将接收的数据写入到文件当中。
客户端代码
客户端代码和服务端代码是类似的,代码如下:
public static void main(String[] args) throws IOException {
// 创建图片的输入流对象
FileInputStream fileInputStream = new FileInputStream("123.jpg");
// 创建 Socket
Socket client = new Socket("localhost", 10086);
// 获取输出流对象
OutputStream outputStream = client.getOutputStream();
int temp = 0;
while ((temp = fileInputStream.read()) != -1) {
outputStream.write(temp);
}
client.shutdownOutput();
// 接受服务端的响应
InputStream inputStream = client.getInputStream();
byte[] buf = new byte[1024];
int length = inputStream.read(buf);
System.out.println(new String(buf, 0, length));
client.shutdownInput();
// 关闭操作
inputStream.close();
outputStream.close();
fileInputStream.close();
client.close();
}
客户端的代码,通过 FileInputStream 来读取图片数据,然后再通过 OutputStream 用来发送读取的图片数据到服务端。
这两段代码基本就是 io 流的使用。
微信中搜索 “码农UP2U” 关注我的公众号吧!!!
网友评论