如何将文件传输添加到群聊中?

如何将文件传输添加到群聊中?

问题描述:

我有一个用于群聊的java代码。我想将文件发送到连接到服务器的所有客户端。如果我使用PrintWriter作为聊天机制,我是否需要其他任何东西如OutputStream进行文件传输?有没有其他的方法来传输文件?我们可以使用他们两个吗?如何将文件传输添加到群聊中?

+0

需要更多信息。你有没有在服务器端运行某种服务?如果它是一个休息服务,您可以Base64编码文件并将其发送到服务器?你的程序是否使用套接字? – Ali

+0

@Ali - 是我在我的程序中使用套接字。服务器是多线程的,并为每个客户端创建一个线程。我从这里得到OutputStream:public ClientHandler(Socket clientSocket,PrintWriter user) sock = clientSocket; InputStreamReader isReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedReader(isReader); OutputStream os = sock.getOutputStream(); cOutputStreams.add(os); 即使使用OutputStream从服务器传输.pdf文件,我也遇到了问题,因为只有0KB文件到达客户端。 – NewToJava

+0

我个人不会在群聊应用程序中使用InputStream/OutputStream。您需要指定要发送的文件,文件类型以及收件人的位置。应该创建一个处理发送和接收消息的休息服务。您不必担心是否应使用Reader/Writer或InputStream/OutputStream。 – Ali

Reader/Writer类与字符一起使用。 InputStream/OutputStream与字节一起使用。根据文件的类型,您需要使用Writer或OutputStream。如果您正在接收和发送文本文件,请使用Reader/Writer;如果您正在接收和发送图像,zip文件,pdfs(二进制文件)使用InputStream/OutputStream。

检查java.io包下的类,以获取不同类型的Reader/Writer和InputStream/OutputStream,以查看哪些类适合您的需要。

+0

- 如果我要使用他们两个是否有可能?我需要关闭一个使用其他吗? – NewToJava