Ich habe einen Java-Code für Gruppen-Chat. Ich möchte eine Datei an alle Clients senden, die mit dem Server verbunden sind. Wenn ich eine PrintWriter
für Chat-Mechanismus verwende, brauche ich andere Dinge wie OutputStream
für die Dateiübertragung? Gibt es eine andere Methode zum Übertragen von Dateien? Können wir beide benutzen?Wie kann ich die Dateiübertragung zu einem Gruppenchat hinzufügen?
Antwort
Die Reader/Writer-Klassen werden mit Zeichen verwendet. Der InputStream/OutputStream wird mit Bytes verwendet. Abhängig vom Typ der Datei müssen Sie entweder einen Writer oder einen OutputStream verwenden. Wenn Sie Textdateien empfangen und senden, verwenden Sie Reader/Writer; Wenn Sie Bilder empfangen und senden, verwenden Sie ZIP-Dateien, PDF-Dateien (Binärdateien) mit InputStream/OutputStream.
Überprüfen Sie die Klassen im Paket java.io auf verschiedene Arten von Lese-/Schreibprogrammen und InputStream/OutputStream, um zu sehen, welche für Ihre Anforderungen geeignet sind.
-Wenn ich beide verwenden soll, ist es möglich? Muss ich eine schließen, um andere zu benutzen? – NewToJava
- 1. Hinzufügen von Teilnehmern in einem Gruppenchat
- 2. Wie kann ich einem Schließvektor Metadaten hinzufügen?
- 3. Wie kann ich nicht fortlaufende Nummern zu einem Bereich hinzufügen?
- 4. Python - Wie kann ich "Whisker" zu einem Punktdiagramm hinzufügen?
- 5. Wie kann ich Metadaten zu einem Bild hinzufügen?
- 6. Wie kann ich eine Baugruppenbindungsumleitung zu einem .net-Kerneinheitstestprojekt hinzufügen?
- 7. Wie kann ich einen Vergleich zu einem SqlCommand hinzufügen?
- 8. Wie kann ich zu einem JavaScript-Objekt hinzufügen Werte dynamisch
- 9. Wie kann ich Temp. Hinzufügen? Felder zu einem Meteor veröffentlichen
- 10. Wie kann ich Mitglieder zu einem Array von SqlParameter hinzufügen?
- 11. Wie kann ich mehrere Funktionen zu einem hinzufügen?
- 12. Wie kann ich Metadaten zu einem Maven Pom hinzufügen
- 13. Wie kann ich einem View Padding hinzufügen?
- 14. Wie kann ich mehrere MouseListeners zu einem einzigen JFrame hinzufügen?
- 15. Wie kann ich zu einem Datagridtextcolumn ein Tooltip hinzufügen
- 16. Wie kann ich programmatisch Bilder zu einem Drupal-Knoten hinzufügen?
- 17. Wie kann ich Benutzerinformationen zu einem JWT hinzufügen?
- 18. Wie kann ich dynamisch Eingabefelder zu einem Formular hinzufügen?
- 19. Wie kann ich Schlüsselwertpaare zu einem Array hinzufügen?
- 20. Wie kann ich ein Musterbild dynamisch zu einem Svg hinzufügen?
- 21. Wie kann ich einen Hyperlink zu einem JFace-Dialog hinzufügen?
- 22. Wie kann ich einen Javascript-Link zu einem Bild hinzufügen?
- 23. Wie kann ich einen Titel zu einem TableGrob Plot hinzufügen?
- 24. Nativen Gruppenchat mit Dateianhang reaktivieren
- 25. Lastabhängige Dateiübertragung
- 26. Wie kann ich Paging zu Benutzersteuerelementen hinzufügen?
- 27. Schnelle Dateiübertragung
- 28. Wie kann ich die Methode zu Math in Javascript hinzufügen
- 29. Wie kann ich die Ergebnisse von SoapUI zu Jira hinzufügen?
- 30. Wie kann ich die Zertifikatskette zu Netty Server hinzufügen?
Weitere Informationen sind erforderlich. Haben Sie irgendeine Art von Service auf der Serverseite? Wenn es sich um einen Rest-Service handelt, können Sie Base64 die Datei verschlüsseln und an den Server senden? Verwenden Sie Sockets für Ihr Programm? – Ali
@Ali -Ja Ich verwende Sockets in meinem Programm. Server ist Multithread und erstellt einen Thread für jeden Client. Ich bekomme den OutputStream von hier: public ClientHandler (Socket clientSocket, PrintWriter-Benutzer) { sock = clientSocket; InputStreamReader isReader = neuer InputStreamReader (sock.getInputStream()); reader = new BufferedReader (isReader); OutputStream os = sock.getOutputStream(); cOutputStreams.add (os); Auch wenn ich OutputStream verwende, um eine PDF-Datei vom Server zu übertragen, habe ich Probleme, da nur 0KB-Datei auf der Clientseite ankommt. – NewToJava
Ich persönlich würde InputStream/OutputStream nicht in einer Gruppen-Chat-Anwendung verwenden. Sie benötigen etwas, um anzugeben, welche Datei gesendet wird, welchen Typ sie hat und wer ihre Empfänger sein sollen. Es sollte ein Rest-Service erstellt werden, der das Senden und Empfangen von Nachrichten behandelt. Sie müssen sich keine Gedanken darüber machen, ob ein Reader/Writer oder InputStream/OutputStream verwendet werden soll. – Ali