BufferedOutputStream endet nicht-Datei schreiben

Free_man

Grünschnabel
Folgendes Problem: ich mach für ein Schulprojekt einen InstantMessenger, und bin gerade dabei Dateien übers Netzwerk zu schicken. Das klappt auch, und wenn das Programm wieder geschlossen ist kann man die geschickten Dateien auf der Empfängerseite auch manipulieren (name ändern etc). Aber während das Programm läuft lässt sich das nicht machen, weil mein BufferedOutputStream auf der Empfängerseite nicht abschließt, und das meiner Vermutung deswegen, weil auf der Senderseite der BufferedOutputstream ebenfalls nicht abschließt, aber habe keine Ahnung warum: hier der Code
Empfängerseite (Datei empfangen und auf Festplatte schreiben)
Code:
try {

                File tmpFile = new File("test.jpg");

                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tmpFile));
                
                
                int i = 0;
                while ((i = bis.read()) != -1)
                {
                    bos.write(i);
                    bos.flush();
                }
                bos.flush();
                bos.close();
                //bis.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
Senderseite (Datei vom PC lesen und senden (jcl_client.bos_outputstream wird von einer anderen Klasse referenziert, das funktioniert einwandfrei)
Code:
BufferedInputStream bis;
            try 
            {
                
                bis = new BufferedInputStream(new FileInputStream(file));
                int fileSize = Math.round(file.length());
                System.out.println(fileSize+"größe");
                
                jcl_client.bos_outputstream = new BufferedOutputStream(new DataOutputStream(jcl_client.soc_verbindung.getOutputStream()));
                
                int summe = 0;
                int i = 0;
                while ((i = bis.read()) != -1)
                {
                    jcl_client.bos_outputstream.write(i);
                }

                jcl_client.bos_outputstream.flush();
                //bos_outputstream.close();
                bis.close();
                
                
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
Ich würd mich freuen wenn mir jemand helfen könnte, bin momentan ziemlich unter Zeitdruck! Danke schonmal im Vorraus!
 
Zurück